![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 59
leetcode刷题
NaCl鱼呜啦啦
常常欲言又止,表达缺乏情致。
展开
-
《剑指》4.二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数。原创 2021-10-09 17:59:15 · 75 阅读 · 0 评论 -
《剑指》5.替换空格
题目: 请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“We are happy.”,则输出“We%20are%20happy.”我的思路: 有两种替换方式,第一种是在原有的字符串上进行替换,第二种是新建一个字符串完成操作。先考虑第一种方式,若从头往后开始替换,则会有数字重复被后移,所以可以从后往前开始替换,但是问题在于原有字符串的空间够不够用,如果不够用则还是要使用第二种方法进行操作。所以我最后还是使用了第二种方法,但是需要注意,如果内存空间够的话,使用第一种方法不需要新的内存原创 2021-10-10 15:35:24 · 77 阅读 · 0 评论 -
《剑指Offer》读书笔记(已完结)
《剑指Offer》读书笔记原创 2021-10-08 01:17:55 · 221 阅读 · 2 评论 -
C语言——再探指针之间的传递
事情的起因很简单,最近在再刷数据结构与算法,coding的时候每次想要重构成函数,却经常因为指针在函数中的传递问题导致程序异常,想起当时上数据结构时写的烂代码,就因为参数传递导致卡半天,当时的解决方法是声明成全局变量哈哈哈。不过现在继续这样可不行了,得回过头来继续看一看,重新想一想,对于自己的技术也是一个大的飞跃。 本来写了一大段,但是突然发现了自己的一个错误MyMalloc(p1);p1虽然传递的是一个地址,但却不是p1的地址,而是存放的是p1保存的地址值,即a的地址,形参s的地址一直与p1的地址原创 2021-10-12 00:40:43 · 223 阅读 · 0 评论 -
《剑指》3补.不修改数组找出重复的数字
注意二分查找时,开始值为中间值加一,即beginNum = mid +1;判断次数judgeNum可以用endNum-beginNun+1计算原创 2021-10-08 15:53:45 · 95 阅读 · 0 评论 -
《剑指》3.数组中重复的数字
题目:找出数组中重复的数字在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中的某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。原创 2021-10-08 01:16:06 · 124 阅读 · 0 评论 -
C语言——链表的结构、正逆序打印、节点的加入与删除
1.链表的结构创建:struct ListNode{ int m_nValue; struct ListNode* m_pNext;};2.在表尾插入元素函数实现:void AddtoTail(struct ListNode** pHead, int value){ struct ListNode* pNew=(struct ListNode*)malloc(sizeof(struct ListNode));//只有分配了内存空间才可以进行赋值 pNew-&g原创 2021-10-14 10:38:35 · 536 阅读 · 0 评论 -
《力扣》113.路径总和II(输出所有路径)
题目:给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22输出:[[5,4,11,2],[5,8,4,5]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/path-sum-ii著作权归领扣网原创 2021-10-17 20:18:05 · 248 阅读 · 0 评论 -
《力扣》112.路径总和(判断是否存在)
题目:给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/path-sum著原创 2021-10-17 17:40:34 · 85 阅读 · 0 评论 -
C语言——三探指针之函数中的malloc
问题:函数中的变量生存周期仅限于函数内部,那么如果在函数中使用malloc为指针分配了一个空间,那么这个值在函数完成后会被销毁吗?答案:不会测试代码:int test(){ int a = (int)malloc(sizeof(int)); a = 6; printf("a的地址:%p\n", &a); return &a;}int main(){ int *p = test(); printf("返回值保存的地址:%p 返回值保存地址的值:%d\n", p,原创 2021-10-14 11:56:18 · 146 阅读 · 0 评论 -
《剑指2》第一章 整数
一、整数的知识:1.问题:负数转化为正数的一个问题:对于32位的整数而言,最小的负数是2^31,而最大的正数为2^31-1;因此这种情况的转化会导致溢出。2.int型整数除法有一种情况会导致溢出,即(-2^31)/(-1);也就是第一条的情况。二、题目:1.整数除法:①个人思路:基于减法实现除法1.b作用于a,使a即将变号的次数2.分四类讨论分析:时间复杂度为O(n),不会出现溢出的情况改进空间:分了四类,代码存在冗余,可以统一将除数与被除数变为某一符号,最后对结果根原创 2022-01-07 22:11:13 · 302 阅读 · 0 评论 -
《力扣》2016. 增量元素之间的最大差值
题目: 给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 nums[i] < nums[j] 。 返回 最大差值 。如果不存在满足要求的 i 和 j ,返回 -1 。示例 1:输入:nums = [7,1,5,4]输出:4解释:最大差值出现在 i = 1 且 j = 2 时,nums[j] - nums[i] = 5 - 1 = 4 。注原创 2021-10-12 17:50:39 · 174 阅读 · 0 评论 -
《剑指2》第2章数组
一、数组的基础知识1.双指针:①方向相反的双指针经常用来求排序数组中的两个数字之和②方向相同的双指针经常用来求正数数组中子数组的和或乘积(滑动窗口)二、题目1.排序数组中的两个数字之和思路一:二分查找时间复杂度O(nlogn)思路二:哈希表(数组可以不排序)时间复杂度O(n),空间复杂度O(n)头脑风暴:这里哈希表存储的也是布尔值,但是存储的个数远大于(int等的32位)故没有办法优化空间复杂度。思路三:双指针时间复杂度O(n),空间复杂度O(1)i原创 2022-01-12 15:44:55 · 277 阅读 · 0 评论 -
C语言——二叉树的生成与遍历
题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果都不含重复数字。例如,输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建如图2.6所示的二叉树并输出它的头结点。二叉树节点的定义如下:typedef struct{ int m_value; struct BinaryTreeNode* m_pLeft; struct BinaryTreeNode* m_pRight;}BinaryTree原创 2021-10-15 16:28:49 · 273 阅读 · 0 评论 -
395. 至少有 K 个重复字符的最长子串
题目:给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。示例 1:输入:s = “aaabb”, k = 3输出:3解释:最长子串为 “aaa” ,其中 ‘a’ 重复了 3 次。示例 2:输入:s = “ababbc”, k = 2输出:5解释:最长子串为 “ababb” ,其中 ‘a’ 重复了 2 次, ‘b’ 重复了 3 次。提示:1 <= s.length <= 104s 仅由小写英原创 2021-10-20 19:07:43 · 95 阅读 · 0 评论 -
《剑指2》第四章 链表
链表原创 2022-01-27 10:32:46 · 1076 阅读 · 2 评论 -
《剑指2》第11章 二分查找
二分查找原创 2022-02-05 17:21:57 · 195 阅读 · 0 评论 -
《剑指2》第3章 字符串
字符串原创 2022-01-20 17:35:35 · 548 阅读 · 0 评论 -
《剑指2》第12章 排序
排序原创 2022-02-11 10:29:03 · 523 阅读 · 0 评论 -
C语言——指针之间的传递
C语言——指针之间的传递基本概念指针:一个变量的地址指针变量:专门存放地址的变量实验代码int main(){ int a = 10; int *p; int *q; p = &a; q = p; printf("p:%d q:%d \n",*p,*q); *q = 250; printf("p:%d q:%d \n", *p, *q); return 0;}运行结果如下:调试图如下:由此可以看出,当更改q地址中存放的值时,p中的值也会改变,因为p、q均储原创 2020-10-24 16:47:23 · 1436 阅读 · 0 评论