社区
C语言
帖子详情
两个面试题,共同探讨
良才2015
2012-02-06 09:27:55
1.合并两个排序链表(老问题,用C实现吧)
2.100个整数组成的数组,打乱次序,拿掉其中一个数,把它找出来(运用另外一个数学技巧可以几行代码搞定)
...全文
4049
78
打赏
收藏
两个面试题,共同探讨
1.合并两个排序链表(老问题,用C实现吧) 2.100个整数组成的数组,打乱次序,拿掉其中一个数,把它找出来(运用另外一个数学技巧可以几行代码搞定)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
78 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chenzuzhang
2012-03-09
打赏
举报
回复
这个很好,简单易懂,也不会溢出。[Quote=引用 15 楼 neolyao 的回复:]
C/C++ code
//2.src1为没有缺失数的数组,src2为缺少了一个数的数组,size为没有缺失的数组的总数目
int get_lost_number(const src1[], const src2[], int size)
{
int sum;
int i;
assert (src1 != NULL && src2 ……
[/Quote]
qixing1115
2012-03-09
打赏
举报
回复
都简单
千树之影
2012-03-09
打赏
举报
回复
[Quote=引用 70 楼 kasabranca 的回复:]
引用 4 楼 we_sky2008 的回复:
C/C++ code
//1.
node *merge_lists(const node *head1, const node *head2)
{
node *head;
node *cur;
if (NULL == head1)
{
return head2;
}
if (NULL == head2)
{
……
……
[/Quote]
答案是把两个数组2N-1个数全异或一遍。循环里只异或了2(N-1)个数,还有一个数最后异或。
千树之影
2012-03-09
打赏
举报
回复
[Quote=引用 72 楼 salamchui 的回复:]
引用 52 楼 wenhongang 的回复:
第2题的改进方法
C/C++ code
int get_lost_number(const src1[], const int src2[], int size)
{
int lost;
int i;
ASSERT(src1 != NULL && src2 != NULL &……
[/Quote]
异或可以随便交换次序的。
良才2015
2012-03-09
打赏
举报
回复
[Quote=引用 67 楼 heaven13483 的回复:]
所有数求和相减
[/Quote]
可以,慢了
salamchui
2012-02-16
打赏
举报
回复
[Quote=引用 52 楼 wenhongang 的回复:]
第2题的改进方法
C/C++ code
int get_lost_number(const src1[], const int src2[], int size)
{
int lost;
int i;
ASSERT(src1 != NULL && src2 != NULL && size > 0);
……
[/Quote]
如果src2[]是在原src1[]當中拿掉一個就是好樣了,但如果src2[]與src1[]沒有次序關係就不行了。
1az98你好
2012-02-15
打赏
举报
回复
[Quote=引用 4 楼 we_sky2008 的回复:]
C/C++ code
//1.
node *merge_lists(const node *head1, const node *head2)
{
node *head;
node *cur;
if (NULL == head1)
{
return head2;
}
if (NULL == head2)
{
……
[/Quote]
第二题的做法只能求出丢失的数本身,而不能找出它的下标吧?
最后的 return lost ^ src1[i] 是什么意思?
求教了
wangjieest
2012-02-15
打赏
举报
回复
[Quote=引用 45 楼 amon98276 的回复:]
不额外申请变量,实现两个数的交换,就是用到异或。
兄弟,说说具体的题目和怎么实现的呀?异或也能实现交换?
还有,异或有用,大家觉得同或也能用吗?有没有具体的例子那?
求解答。3q
[/Quote]
同或也是一样的啊...用@表示同或吧...
异或: 某一位 遇上1就改变
同或: 某一位 遇上0就改变
A^B = ~(A@B)
Heaven13483
2012-02-14
打赏
举报
回复
所有数求和相减
czzdcn123
2012-02-14
打赏
举报
回复
都是高手啊。。。。
hello_world000
2012-02-13
打赏
举报
回复
[Quote=引用 52 楼 wenhongang 的回复:]
第2题的改进方法
C/C++ code
int get_lost_number(const src1[], const int src2[], int size)
{
int lost;
int i;
ASSERT(src1 != NULL && src2 != NULL && size > 0);
……
[/Quote]
明显不行的,题目已经说了打乱次序了
比如:
int src1[] = {1, 2, 3, 4, 5};
int src2[] = {3, 1, 5, 2};
按你的代码结果就是1了,而实际去掉的那个数是4
Liaojet
2012-02-13
打赏
举报
回复
赞个,新手又长见识了
jackzhhuang
2012-02-13
打赏
举报
回复
[Quote=引用 53 楼 javkburd 的回复:]
4L的代码一向都很经典。谁能解释一下为什么这样用异或就能解决呢?小弟一窍不通啊!
[/Quote]
基于一个简单的原理:A^A=0。那么,假设A是原数组,A^C就是指从A中去掉C(也是基于A^A=0这个原理),那么A^A^C=C,C就被求出来了。
yyc23
2012-02-13
打赏
举报
回复
[Quote=引用 4 楼 we_sky2008 的回复:]
C/C++ code
//1.
node *merge_lists(const node *head1, const node *head2)
{
node *head;
node *cur;
if (NULL == head1)
{
return head2;
}
if (NULL == head2)
{
……
[/Quote]
赞!
chenfeng2002
2012-02-13
打赏
举报
回复
第一题自己写的,第二题学习了。
node * merg(node *list1, node *list2)
{
node *p1;
node *p2;
node *p = NULL;
node *list = p;
p1 = list1;
p2 = list2;
while(p1 && p2)
{
if(p1->data < p2->data)
{
p = p1;
p1 = p1->next;
}
else
{
p = p2;
p2 = p2->next;
}
p = p->nex;
}
if(NULL == p1)
{
p = p2;
}
else if(NULL == p2)
{
p = p1;
}
return list;
}
gaochizhen33
2012-02-13
打赏
举报
回复
[Quote=引用 52 楼 wenhongang 的回复:]
第2题的改进方法
C/C++ code
int get_lost_number(const src1[], const int src2[], int size)
{
int lost;
int i;
ASSERT(src1 != NULL && src2 != NULL && size > 0);
for……
[/Quote]
没看懂哪。原题中没有用0去填补空的那个整数所占用的位置。
gaochizhen33
2012-02-13
打赏
举报
回复
[Quote=引用 53 楼 javkburd 的回复:]
4L的代码一向都很经典。谁能解释一下为什么这样用异或就能解决呢?小弟一窍不通啊!
[/Quote]
a^b^c^b^a = c ;
知道这个原理就能看懂了
良才2015
2012-02-13
打赏
举报
回复
[Quote=引用 52 楼 wenhongang 的回复:]
第2题的改进方法
C/C++ code
int get_lost_number(const src1[], const int src2[], int size)
{
int lost;
int i;
ASSERT(src1 != NULL && src2 != NULL && size > 0);
……
[/Quote]
不错哦
hello_world000
2012-02-10
打赏
举报
回复
[Quote=引用 47 楼 qq867814126 的回复:]
引用 4 楼 we_sky2008 的回复:
C/C++ code
//1.
node *merge_lists(const node *head1, const node *head2)
{
node *head;
node *cur;
if (NULL == head1)
{
return head2;
}
if (NULL == head2)
{
……
……
[/Quote]
他在这里初始化为0了
for (lost = 0, i = 0; i < size - 1; ++i)
amon98276
2012-02-10
打赏
举报
回复
我查了查资料,应该没什么有用的同或算法,而且就数学理论来说同或也不像异或这样的宽泛,同或要求还是很严格的。不知道有没有高手见过同或的算法,或是用途什么的,敬请指教。
楼上的兄弟的算法学习了。3q
For the lichking.
加载更多回复(43)
[js] 如何判断
两个
对象相等?
本文
探讨
了如何在JavaScript中判断
两个
对象是否相等,提供了一个自定义函数实现,并提到了JSON.stringify()方法作为快速比较的手段。作者歌谣分享了前端知识,鼓励大家在遇到困难时坚持下去,
共同
探讨
前端
面试题
。
程序员
面试题
狂想曲:第五章、寻找满足条件的
两个
或多个数
本文深入
探讨
了程序员
面试题
中的经典问题,包括在数组中寻找满足特定条件的
两个
数,以及从一系列数中组合出指定和的数列。详细介绍了高效的解题策略与算法实现,覆盖有序数组、无序数组、二分查找、哈希表等多种场景,同时提供了递归和回溯法的解法实例。文章还扩展至更多样化的应用案例,如筛选数列以形成递增与递减交替序列,以及通过交换
两个
序列的元素来最小化两者和的差距。此外,文章鼓励读者贡献反馈、建议和新的解法,旨在
共同
提升算法理解和解决问题的能力。
边工作边刷题:70天一遍leetcode: day 1
本文深入解析了Google曾
面试题
之一:如何在
两个
已排序数组中找到第k个元素,详细介绍了使用二分查找法解决此问题的策略,并讨论了算法的复杂性和边界情况。此外,文章还拓展了该问题到分布式环境下,
探讨
了多个节点
共同
计算中位数的可能方法。
一个窗帘引发的——关于测试及测试活动的思考(一)
本文分享了一次中兴测试岗位的面试经历,重点介绍了
两个
有趣的
面试题
:为会议室设计窗帘用例及估算西安市合理教师岗位数量的方法。作者给出了自己的解答思路,并邀请读者
共同
探讨
。
Hive实现
共同
好友统计
本文
探讨
了社交应用中好友推荐算法的实现方法,利用SQL统计
共同
好友数量,并扩展至非好友间的
共同
联系人,以此提高推荐精准度。
C语言
70,038
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章