目录

第1题:在排序数组中查找数字

第2题:0~n-1中缺失的数

第3题:反转单次顺序

第4题:和为S的两个数

第5题:和为S的连续正数序列

第6题:左旋转字符串

第7题:滑动窗口的最大值

第8题:扑克牌中的顺子

第9题:圆圈中最后剩下的数字

第10题:不用加、减、乘、除做加法运算


力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。

第1题:在排序数组中查找数字

试题要求如下:

回答(C语言):

int search(int* nums, int numsSize, int target){int cou=0;for(int i=0;i<numsSize;i++){if(nums[i]==target){cou++;}}return cou;
}

运行效率如下所示:


第2题:0~n-1中缺失的数

试题要求如下:

回答(C语言):

int missingNumber(int* nums, int numsSize){for(int i=0;i<numsSize;i++){if(nums[i]!=i){return i;}     }return nums[numsSize-1]+1;
}

运行效率如下所示:


第3题:反转单次顺序

试题要求如下:

回答(C语言):

/*** 去除重复空格,反转整个字符串,再逐个反转单个单词**/void reverse(char* s, int i, int j){while(i < j){char c = s[i];s[i] = s[j];s[j] = c;i++; j--;}
}char * reverseWords(char * s){int i, j, len, flag = 0;i = j = 0;while(s[j]){if(s[j] != ' '){if(flag == -1 && i > 0){s[i++] = ' ';}s[i++] = s[j++];flag = 1;}else{j++;flag = -1;}}s[i] = '\0';reverse(s, 0, i-1);len = i;i = 0;for(j = 0; j <= len; j++){if(s[j] == ' ' || s[j] == '\0'){reverse(s, i, j-1);i = j+1;}}return s;
}

运行效率如下所示:


第4题:和为S的两个数

试题要求如下:

回答(C语言):

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* twoSum(int* nums, int numsSize, int target, int* returnSize){int i=0,j=numsSize-1;int* data_buf=(int*)malloc(sizeof(int)*2);memset(data_buf,0,sizeof(data_buf));*returnSize=2;while(i<j){if(nums[i]+nums[j]==target){data_buf[0]=nums[i];data_buf[1]=nums[j];break;}if(nums[i]+nums[j]>target)j--;elsei++; }return data_buf;
}

运行效率如下所示:


第5题:和为S的连续正数序列

试题要求如下:

回答(C语言):

int** findContinuousSequence(int target, int* returnSize, int** returnColumnSizes){int count = 0;int MAXN = (int)sqrt(2.0 * target - 0.25); // 确定最大可能的连续值int SQUARE = MAXN * (MAXN + 1) / 2;int **res = (int**)malloc(MAXN * sizeof(int*));int *col = (int*)malloc(MAXN * sizeof(int));if (target <= SQUARE) SQUARE -= MAXN--; // 连续和大于目标值时减一while(MAXN > 0) {if ((target - SQUARE) % (MAXN + 1) == 0) {   int *tmp = (int *)malloc((MAXN + 1) * sizeof(int));        for (int j = 0; j < MAXN + 1; j++) {*(tmp + j) = (target - SQUARE) / (MAXN + 1) + j;}*(res + count) = tmp;*(col + count) = MAXN + 1;count++;}SQUARE -= MAXN--;}*returnSize = count;*returnColumnSizes = col;return res;
}

运行效率如下所示:


第6题:左旋转字符串

试题要求如下:

回答(C语言):

char* reverseLeftWords(char* s, int n){int j=0;int len=strlen(s);char *data_buf=(char *)malloc(sizeof(char)*(len+1));for(int i=n;i<len;i++){data_buf[j++]=s[i];}for(int i=0;i<n;i++){data_buf[j++]=s[i];}data_buf[len]='\0';return data_buf;
}

运行效率如下所示:


第7题:滑动窗口的最大值

试题要求如下:

回答(C语言):

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* maxSlidingWindow(int* nums, int numsSize, int k, int* returnSize){if(nums==NULL || numsSize<=0){*returnSize=0;return nums;}int* data_buf=(int *)malloc(sizeof(int)*(numsSize+1-k));int num=0;for(int i=0;i<numsSize+1-k;i++){num=nums[i];for(int j=i+1;j<=i+k-1;j++){if(num<nums[j])num=nums[j];}data_buf[i]=num;}*returnSize=numsSize+1-k;return data_buf;
}

运行效率如下所示:


第8题:扑克牌中的顺子

试题要求如下:

回答(C语言):

int cmp ( const void *a , const void *b )
{ return *(int *)a > *(int *)b;
} bool isStraight(int* nums, int numsSize){int zero=0;qsort(nums,5,sizeof(int),cmp); for(int i=0;i<numsSize-1;i++){if(nums[i]==0){zero++;continue;}if(nums[i]==nums[i+1]) return false;if(nums[i]!=nums[i+1]+1)zero-=nums[i+1]-nums[i]-1;}        return zero>=0;
}

运行效率如下所示:


第9题:圆圈中最后剩下的数字

试题要求如下:

回答(C语言):

//约瑟夫环int lastRemaining(int n, int m){int res=0;for(int i=2;i<=n;i++)res=(res+m)%i;return res;
}

运行效率如下所示:


第10题:不用加、减、乘、除做加法运算

试题要求如下:

回答(C语言):

int add(int a, int b){int temp=0;while(a!=0){temp=a^b;a=((unsigned int)(a&b)<<1);b=temp;}return b;
}

运行效率如下所示:

力扣(LeetCode)刷题,简单题(第6期)相关推荐

  1. Leetcode-How-What 力扣Leetcode刷题指南

    Leetcode-How-What 力扣Leetcode刷题指南 About the way how to use Leetcode wisely for preparing the intervie ...

  2. 力扣(LeetCode)刷题,简单+中等题(第35期)

    力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升. 第1题:解码异或后的排列 试题要求如下: 回答(C语言): /*** Note: ...

  3. 力扣(LeetCode)刷题,简单+中等题(第26期)

    目录 第1题:字典序排数 第2题:字符串解码 第3题:查找常用字符 第4题:所有奇数长度子数组的和 第5题:长按键入 第6题:分割字符串的最大得分 第7题:回文链表 第8题:有多少小于当前数字的数字 ...

  4. 力扣(LeetCode)刷题,简单题(第23期)

    目录 第1题:整数转换 第2题:重复的子字符串 第3题:范围求和2 第4题:反转数位 第5题:数字转换为十六进制 第6题:比较含退格的字符 第7题:三个数的最大乘积 第8题:珠玑妙算 第9题:旋转字符 ...

  5. 力扣(LeetCode)刷题,简单题(第15期)

    目录 第1题:将整数转换为两个无零整数的和 第2题:一周中的第几天 第3题:把二叉搜索树转换为累加树 第4题:连续字符 第5题:拿硬币 第6题:删除中间节点 第7题:猜数字 第8题:整数的各位积和之差 ...

  6. 力扣(LeetCode)刷题,简单题(第5期)

    目录 第1题:二进制中1的个数 第2题:打印从 1 到最大的 n 位十进制数 第3题:删除链表的节点 第4题:调整数组顺序使奇数位于偶数前面 第5题:链表中倒数第K个节点 第6题:反转链表 第7题:二 ...

  7. 力扣(LeetCode)刷题,简单+中等题(第34期)

    目录 第1题:整数转罗马数字 第2题:电话号码的字母组合 第3题:二叉树的所有路径 第4题:砖墙 第5题:下一个排列 第6题:括号生成 第7题:删除并获得点数 第8题:全排列 第9题:颜色分类 第10 ...

  8. 力扣(LeetCode)刷题,简单+中等题(第33期)

    目录 第1题:Z 字形变换 第2题:删除字符串中的所有相邻重复项 第3题:基本计算器 II 第4题:螺旋矩阵 第5题:螺旋矩阵 II 第6题:盛最多水的容器 第7题:删除有序数组中的重复项 II 第8 ...

  9. 力扣(LeetCode)刷题,简单+中等题(第32期)

    目录 第1题:数组的度 第2题:托普利茨矩阵 第3题:爱生气的书店老板 第4题:翻转图像 第5题:有效的数独 第6题:无重复字符的最长子串 第7题:区域和检索 - 数组不可变 第8题:二维区域和检索 ...

  10. 力扣(LeetCode)刷题,简单+中等题(第31期)

    目录 第1题:同构字符串 第2题:最后一块石头的重量 第3题:最小路径和 第4题:键盘行 第5题:存在重复元素 II 第6题:两数相加 第7题:三个数的最大乘积 第8题:等价多米诺骨牌对的数量 第9题 ...

最新文章

  1. js date 当前日志往后一个月_【应用实例】如何利用 Python 生成器 yield 监控日志?...
  2. CSS3实践之路(一):CSS3之我观
  3. 你知道304吗?图解强缓存和协商缓存
  4. 自行车测速器怎么调_一种自行车测速器及其安装方法与流程
  5. 鸿蒙什么时候出来,鸿蒙系统什么时候发布
  6. android源码解析------Music 音乐播放器
  7. OpenCV-绘制多边形(fillConvexPoly和fillPoly的区别)
  8. python execute异步执行_封装了一个对mysql进行异步IO的小工具
  9. Postgres 数据库大批量单表导入数据引发性能故障的处理
  10. I2C 总线协议初探 - STM32 I2C 接口外设学习笔记
  11. 使用MongoVUE
  12. html+css唯美登录页面,代码提供(效果展示)
  13. 12 初探肿瘤异质性
  14. C++获取C盘临时文件夹的方法
  15. 卡在硬盘启动计算机,插硬盘启动卡死了,怎么办?电脑维修方法
  16. 霍夫变换c语言程序,霍夫变换 | Cauthy's Blog
  17. 苹果开发者新账号上新app审核被拒绝:Other-Other被拒绝,心路历程记录!
  18. 电脑保护眼睛的背景颜色
  19. 彻底卸载服务器上的Oracle
  20. 深度 | Nature论文:无监督表征学习,用电子健康病历增强临床决策

热门文章

  1. react控制 input 框回车之后内容清空
  2. Android 人民币符号在布局中实现的效果不一样的处理方法
  3. Json 学习 JSONObject 和 JSONArray
  4. select 和 order by
  5. cwRsync文件双向同步问题
  6. 记一个开发中遇到react-native flatList 的坑
  7. 中国互联网+光伏逆变器行业商业模式创新与投资机会深度研究报告
  8. [LeetCode] 130. Surrounded Regions Java
  9. Js 判断网页窗口是否滚动到底部
  10. 【转载】 stm32之PWM