当前位置: 首页 > news >正文

亿网行网站建设114企业网国外外链平台

亿网行网站建设114企业网,国外外链平台,WordPress个人知识库,做极速赛车网站题目一: 题目链接: 思路一: 1.两个数二进制之间进行异或如果不产生进位操作那么两个数的和就是就是两个数进行异或的结果。 举例:5(0101)2(0010)进行异或等于:7&#xf…

题目一:

请添加图片描述
题目链接:

思路一:

1.两个数二进制之间进行异或如果不产生进位操作那么两个数的和就是就是两个数进行异或的结果。
举例:5(0101)2(0010)进行异或等于:7(0111)相同为0,不同位1.
2.如果两个数之间需要进位
1.如果两个1进行异或那么这个位置就变成了0满足进位的条件。(对于两个数异或求非进位和来说)。
2.只有两个1才是进位,所以使用与的方法获取要进的位之后进行左移动。(得到进位之后的数值)。
3.进行相加,但是不可以使用加法。因为我们知道两个数之间如果不产生进位操作,按位异或就是他们的和。
4.循环判断按位与的结果为0的时候说明两个数相加不存在进位。

int Add(int num1, int num2 ) {// write code hereint sum, forward;do{//1.每一个位置相加,不产生进位(10(1010)+2(0010)-->8(1000)不进位)sum = num1^num2;//2.找到要加的进位数(10(1010)&2(0010)-->2(0010)<<1-->4(0100))forward = (num1&num2) << 1;//3.将前两步的值相加,但是相加不能用加法,重复前面两个步骤,直到不产生进位num1 = sum;//第二步的forward值为0,说明没有位需要前进,它们的和必然是sum的值num2 = forward;} while (num2 != 0);//结束条件是不产生进位return num1;
}

题目二

请添加图片描述
题目链接:

>思路一:

1.使用双for循环判断。
2.从1到n循环遍历,每一个数在数组中从前到后去判断。是否存在
3.如果数组被遍历完全动没有相等的值那么说明这个外面循环的这个数不存在于数组中。

int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){int n = numsSize;int* num = (int*)calloc(n,sizeof(int));int count = 0;int j = n;int flag = 0;for (int i = 1; i <= n; i++){int j = 0;for (j = 0,flag=0; j < n; j++){if ((nums[j])==i ){flag = 1;break;}}if (flag!=1){(*(num+count)) = i;count++;flag = 0;}}(*returnSize) = count;return num;
}

产生问题:
请添加图片描述

>思路二:

0.进行快速排序使nums先有序
1.不允许开辟额外的空间,因为有连续的数值存在。
2.从nums找出单独的数放到num中,并记录个数为count。
3.把num的内容拷贝到nums中。num的前面count个元素置为空
4.这个时候满足[1,n]中存在的数只有一个在nums中。
5.从1到n开始遍历,nums数组。
6.当nums的最后一个不是n就需要有一个k<=n的一个判断条件如果没有的化(n2是nums中单个数的元素个数)[num[n2-1],n]这些数值是会失去找不到的。

int cmp(void*p1,void*p2){return (*((int*)p1))-(*((int*)p2));}
int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){int n = numsSize;int* num = (int*)calloc(n,sizeof(int));int count = 0;qsort(nums,n,sizeof(int),cmp);//1.从前面到后面只有一个数按照顺序放到num里面。num[count]=nums[0];count++;for(int i=0;i<n-1;i++){if(nums[i+1]!=num[count-1]){num[count]=nums[i+1];count++;}}//2.把只有一个的数放回去到nums中,把num置为空。int n2=count;count=0;memcpy(nums,num,sizeof(int)*n2);memset(num,0,sizeof(int)*n2);//3.当nums的最后一个不是n就需要有一个k<=n//的一个判断条件如果没有的化[num[n2-1],n]这些数值是会失去找不到的。int j=0;int k=1;//1,1,2,2,这样的情况。//1,2,有k<=n否则是否出现这样的情况导致有的数没有判断到。while(j<n2||k<=n){if(nums[j]==k){k++;j++;}else{num[count++]=k;k++;}}(*returnSize) = count;return num;
}
http://www.mmbaike.com/news/54172.html

相关文章:

  • 做团建活动网站重庆关键词自然排名
  • 衡水网站建设网络公司百度广告优化
  • 怎么用软件做原创视频网站360免费建站教程
  • 网站建设广告词专业模板建站
  • 肥西县重点建设局网站关键词优化排名用什么软件比较好
  • 网站怎么公安备案号南通企业网站制作
  • 网站建设的内容管理电商运营推广是做什么的
  • 株洲做网站那家好广告图片
  • 设计网站一条龙域名注册价格及续费
  • 吴江盛泽建设局网站福州网站建设团队
  • 网站做开票公司做网页要多少钱
  • 开淘宝网店网络优化器免费
  • 网站商城服务体系建设方案关键词排名监控
  • asp 动态网站开发广告传媒公司经营范围
  • 预算有哪些网站做私活营销型企业网站诊断
  • 网站开发后台前端数据库百度seo一本通
  • 简单的网站怎么做南京seo网络优化公司
  • 2018网站建设行业互联网广告推广是什么
  • redis 移动 wordpress北京关键词优化报价
  • 豫icp郑州网站建设店铺推广
  • 淄博logo设计公司seo提高关键词
  • 网站注册哪个好百度热搜榜
  • 温州市网站建设公司网络推广的途径有哪些
  • 做网站费用计入什么二级网站怎么做
  • 有哪些网页制作的软件重庆百度快照优化排名
  • 网页设计毕业论文选题天津网站优化公司
  • 微信链接的微网站怎么做热门网站
  • 专业做网站建设seo下拉优化
  • 株洲在线论坛优化营商环境的金句
  • 有没有电脑做兼职的网站河北电子商务seo