剑指offer
边学边记
神秘的企鹅
Freshman
展开
-
剑指 Offer 25. 合并两个排序的链表
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 来源:力扣(LeetCode) 完全一致21. 合并两个有序链表 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* mergeTwoLists(struct ListNode* l1, s.原创 2021-09-17 13:04:57 · 44 阅读 · 0 评论 -
剑指 Offer 22. 链表中倒数第k个节点
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 来源:力扣(LeetCode) 双指针 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct Lis..原创 2021-09-02 21:00:22 · 54 阅读 · 0 评论 -
剑指 Offer 18. 删除链表的节点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 来源:力扣(LeetCode) /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* deleteNode(struct ListNode* hea原创 2021-09-16 12:15:32 · 51 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0,F(1)= 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 来源:力扣(LeetCode) 动态规划 int fib(in...原创 2021-09-04 20:28:16 · 52 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 来源:力扣(LeetCode) 206. 反转链表 类似的 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * Note: The returned array must be malloced, assume cal.原创 2021-09-16 13:14:09 · 51 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 来源:力扣(LeetCode) 新增扩容 char * replaceSpace(char* s) { int len = strlen (s); int cnt = 0; for (int i = 0; i < len; i ++) { if (s[i] == ' ') { cnt ++; } } .原创 2021-09-05 17:51:31 · 40 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 来源:力扣(LeetCode) 暴力法 bool findNumberIn2DArray(int** matrix, int matrixSize, int* matrixColSize, int target) { for (int row; row < matrixSize;.原创 2021-09-07 11:39:54 · 118 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 来源:力扣(LeetCode) 快速排序 int cmp(int *a,int *b) { return *a - *b; } int findRepeatNumber(int* nums, int numsSize) { qsort(nums, numsS.原创 2021-09-06 23:38:36 · 46 阅读 · 0 评论