社区
C语言
帖子详情
两个面试题,共同探讨
良才2015
2012-02-06 09:27:55
1.合并两个排序链表(老问题,用C实现吧)
2.100个整数组成的数组,打乱次序,拿掉其中一个数,把它找出来(运用另外一个数学技巧可以几行代码搞定)
...全文
3985
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)
Java
面试题
大全(2020版)
发现网上很多Java
面试题
都没有答案,所以花了很长时间搜集整理出来了这套Java
面试题
大全,希望对大家有帮助哈~ 本套Java
面试题
大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java ...
软件测试工程师经典
面试题
软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。...测试工程师的
面试题
,基本上都是大同小异的,面试的核心主要在于框架模块(一到两年工作经验) 。今...
10万字208道Java经典
面试题
总结(附答案)
JDK中包含JRE,JDK中有一个名为jre的目录,里面包含
两个
文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。 2、== 和 equals 的区别是什么? 对于基本类型,==比较的是值; 对于引用类型,==比较的是地址...
Android
面试题
大全(2023年最新)
声明:有人说, 有些
面试题
很变态,个人认为其实是因为我们基础不扎实或者没有深入。本篇文章来自一位很资深的前辈对于最近Android
面试题
目所做的总结归纳,有1600+道题目 ,知识面很广 ,而且这位前辈对于每个题都...
史上最全Java
面试题
大汇总「百题附答案」
整理这些
面试题
源于在微信群和几个刚入职的小伙伴们的一次讨论,很多小伙伴谈了自己的面试经历和体会,很多人最初鄙视刷题党,觉得开发技能最重要,但在短暂的面试过程中很挫败。转而去看
面试题
,但是网上
面试题
太多...
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章