目录
第1题:只出现一次的数字
第2题:两数之和
第3题:Excel表列名称
第4题:数组中重复的数字
第5题:二维数组中的查找
第6题:替换空格
第7题:从头到尾打印链表
第8题:斐波拉契数列
第9题:青蛙跳台阶问题
第10题:旋转数组的最小数
力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。
第1题:只出现一次的数字试题要求如下:
回答(C语言):
//按位异或,相同的数异或为0,任何数与0异或为原数不变 int singleNumber(int* nums, int numsSize){ int a = 0; for(int i = 0;i < numsSize ;i++){ a ^= nums[i]; } return a; }第2题:两数之和
试题要求如下:
回答(C语言):
/** * Note: The returned array must be malloced, assume caller calls free(). */ int* twoSum(int* nums, int numbersSize, int target, int* returnSize){ int *res = malloc(sizeof(int) * 2); *returnSize = 2; int i = 0; int j = numbersSize - 1; while(true){ if (nums[i] + nums[j] > target) { j--; } else if (nums[i] + nums[j] < target) { i++; } else{ res[0] = i+1; res[1] = j+1; break; } } return res; }第3题:Excel表列名称
试题要求如下:
回答(C语言):
char * convertToTitle(int n){ int len = 0, tmp = n; while (tmp){ len++; tmp = (tmp - 1) / 26; } char *res = (char*)malloc(len + 1); tmp = n; res[len] = 0; while (len--){ res[len] = (tmp - 1) % 26 + 'A'; tmp = (tmp - 1) / 26; } return res; }第4题:数组中重复的数字
试题要求如下:
回答(C语言):
int comp(const void *a, const void *b) { return *(int *)a < *(int *)b; //从小到大排序 } int findRepeatNumber(int* nums, int numsSize){ qsort(nums, numsSize, sizeof(int), comp); for (int i = 0; i < numsSize-1; i++) { if (nums[i] == nums[i+1]) return nums[i]; } return -1; }第5题:二维数组中的查找
试题要求如下:
回答(C语言):
bool findNumberIn2DArray(int** matrix, int matrixSize, int* matrixColSize, int target){ if(matrix==NULL || matrixSize==0 || matrixColSize[0]==NULL) return false; for(int i=0;i关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?