您的位置:首页 > 其它

链家笔试算法题

2017-10-18 22:51 295 查看
1 给定一个数组,将奇数排在偶数前面

思路:类似于快排的思想

#include<iostream>
#include<stdio.h>
#include<memory.h>

using namespace std;

void exchange(int a[], int n)
{
int low = 0, high = n-1;
while(low < high)
{
while(low < high && a[low] % 2 == 1) low++;
while(low < high && a[high] % 2 == 0) high--;
swap(a[low],a[high]);
}
}


2 删除有序链表中的重复元素

代码如下:

#include<iostream>
#include<stdio.h>
#include<memory.h>

using namespace std;

struct LinkList
{
int val;
LinkList * next;
LinkList(int v):val(v) {}
};

void removeDup(LinkList * head)
{
LinkList *pre, * cur;
if(head == nullptr) return ;
pre = head; cur = pre->next;
while(cur)
{
if(cur->val == pre->val)
{
cur = cur->next;
pre->next = cur;
}
else
{
pre = cur;
cur = cur->next;
}
}
}
//测试
int main()
{
int a[] = {1,1,2,3,3,4};
LinkList *head = nullptr, *p = nullptr;
for(int i = 0; i < 6; i++)
{
if(head == nullptr)
{
head = p= new LinkList(a[i]);
p->next = nullptr;
}
else
{
p->next = new LinkList(a[i]);
p = p->next;
p->next = nullptr;
}
}
p = head;
while(p)
{
cout<<p->val<<" ";
p = p->next;
}
cout<<endl;
removeDup(head);
p = head;
while(p)
{
cout<<p->val<<" ";
p = p->next;
}

return 0;
}


3 大数乘法

4 编辑距离
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 小红书笔试