- 博客(5)
- 收藏
- 关注
原创 剑指offer-合并两个排序的链表
该题目可以采用多种方式求解,在这里,本博主采用递归的方式解决该问题,C语言的代码如下所示,其中在比较完第一个元素后,剩下的链表同样可以采用该方式解决。 struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) { if(l1 == NULL) { return l2; } if(l2 == NULL) { return l1; } ...
2021-08-26 15:47:55
41
原创 剑指Offer-青蛙跳台阶问题
本题目看似很无从下手,其实将题目进行分解可以知道,现剩n个台阶,下一步要么跳两个台阶,要么跳一个台阶,因此跳n个台阶就相当于剩下n-1台阶和剩下n-2个台阶跳法的和,即f(n)=f(n-1)+f(n-2),联想到斐波那契数列可求解。 int numWays(int n) { long int i = 1, j = 2,cnt = 0; cnt = n; long int ans = 0; if(n == 0 || n == 1) ...
2021-08-20 17:07:36
51
原创 剑指offer- 斐波那契数列
本博主采用C语言求解该内容: 考虑到n的范围为0~100,因此需要设置相应的判断n,以及考虑到中间的数字的大小,将数据类型设置为long int; int fib(int n) { long int a = 0,b = 1,c = 0; int cnt = n; if (n == 0) //判断n的大小,如果为0直接返回函数值0 { return 0; } while (cnt > 1) { c = ...
2021-08-20 15:56:21
49
原创 剑指offer - 替换空格
本题来自于LeetCode的剑指offer中替换空格。 本题目首先统计整个字符串的长度及空格的数目,以此得到相应的新字符串的长度来建立新的字符串。 C语言的代码如下: char*replaceSpace(char*s){ inti=0,len=strlen(s),j=0,cnt=0; char*ans; for(i=0;i<len;i++) //统计字符串中的空格的数目 { ...
2021-08-18 21:32:03
40
原创 剑指offer-找出数组中重复的数字
博主准备采用C语言解决该问题: 1、暴力检索法 该方法比较简单,直接两次遍历数组情况,找出其中的重复的数字。 int findRepeatNumber (int nums[], int numsSize) //传递数组名称和数组大小 { int i = 0,j = 0,k = 0; int temp = 1; for (i=0;i<numsSize;i++) //外循环 { temp = nums[i]; for (...
2021-08-18 19:35:44
60
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人