![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
LeetCode
文章平均质量分 67
数据结构实战
None072
机械 嵌入式 机器学习 独立游戏开发 欢迎交流
展开
-
【LeetCode】【C++】819. 最常见的单词
题目链接:https://leetcode-cn.com/problems/most-common-word/个人总结本题使用哈希表的方法,对每个单词进行计数,同时判断是否出现在ban列表中,若出现则不计入表中;注意for中的<=,因为我们需要对尾字母的下一个元素进行判断,来决定是否将前面的字母计入word;unordered_set,unordered_map是C++中的关联容器,关联容器的用法在下一篇博客-C转C++DAY4,在C++ Primer的关联容器解释中也有此题的类似用例;C原创 2022-04-17 14:16:54 · 913 阅读 · 0 评论 -
【LeetCode】【C++】98. 验证二叉搜索树
题目链接:https://leetcode-cn.com/problems/validate-binary-search-tree/0.个人总结测试 [5,4,6,null,null,3,7]错误的原因:二叉搜索树是指左子树上所有节点的值均小于它的根节点的值,右子树上所有节点的值均大于它的根节点的值,而不是单独的左右节点。-231 <= Node.val <= 231 - 1,所以需要定义long类型。LONG_MIN和LONG_MAX是C++的数值最大最小标识符,具体可以看这篇文章最原创 2022-04-14 21:16:48 · 1460 阅读 · 0 评论 -
【LeetCode】【C】232. 用栈实现队列
用栈实现队列-C实现题目链接:https://leetcode-cn.com/problems/implement-queue-using-stacks/解题思路:https://leetcode-cn.com/problems/implement-queue-using-stacks/solution/yong-zhan-shi-xian-dui-lie-by-leetcode/队列是先入先出,所以为了让后压入的元素放在栈底,在push时,我们首先需要把 s1 中所有的元素移到 s2 中,接着.原创 2022-04-09 19:53:12 · 373 阅读 · 0 评论 -
【C】两道题(杨辉三角、重塑矩阵)了解纯C的malloc()函数与动态数组
题目来源:力扣118. 杨辉三角给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。我们需要使用C语言来创建一个动态的二维数组,使它每行的列数等于它的行数。首先通过malloc()函数来开辟整个二维数组的空间:malloc()函数:malloc函数会返回开辟空间的首地址,加(int *)的目的是让计算机知道,如何去划分这个开辟的空间,因为char、int 、long这些类型的字节大小是不一样的,我们知道了首地址,还要原创 2022-04-03 00:31:32 · 334 阅读 · 0 评论 -
LeetCode纯C题解——739. 每日温度(单调栈快速解法)
739. 每日温度来源:力扣(LeetCode) 题目链接请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100]原创 2020-12-27 01:05:56 · 248 阅读 · 0 评论 -
LeetCode纯C解题集——二分查找
二分查找有三个常用的模板,对应每个模板,我会列出一个简单题和中等题及对应的解释供学习与交流。(leetbook参考链接)模板分类模板1模板2模板3模板1模板2模板3原创 2020-12-16 00:21:45 · 166 阅读 · 0 评论 -
LeetCode:C语言实现 滑动窗口 及 配合hash数组的应用
这道题困扰了我很长时间,所以单列出来做一篇笔记,代码都是参考题解区大神的。我们使用两个指针表示字符串中的某个子串(的左右边界)。其中左指针代表着上文中「枚举子串的起始位置」,而右指针即为上文中的 rkr_krk;在每一步的操作中,我们会将左指针向右移动一格,表示 我们开始枚举下一个字符作为起始位置,然后我们可以不断地向右移动右指针,但需要保证这两个指针对应的子串中没有重复的字符。在移动结束后,这个子串就对应着 以左指针开始的,不包含重复字符的最长子串。我们记录下这个子串的长度;在枚举结束后,我们找原创 2020-12-14 00:28:07 · 474 阅读 · 0 评论 -
LeetCode解题集——快慢指针
目录19. 删除链表的倒数第N个节点19. 删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。暴力解法另快指针先走n步,慢指针等待快指针停下后随快指针一起前进,同时用另一指针ret指向慢指针的上一个节点。当快指针指向NULL时,ret正好指向倒数第n+1个结点处,此时可进行删除操作。对于官方解法,可先另一指针指向哑节点,使慢指针从哑节点处开始进行,此操作时间复杂度更少。struct ListNode* removeNthFromEnd(struct L原创 2020-12-12 09:27:10 · 1041 阅读 · 1 评论 -
LeetCode解题集——C链表
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){ struct ListNode* cur = (struct ListNode*)malloc(sizeof(struct ListNode)); struct ListNode* ret = cur; int carry=0; int value; while(l1 || l2){ int x = l1原创 2020-12-09 21:49:59 · 128 阅读 · 0 评论