自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 C语言 LeetCode 92 [反转链表 II]

要反转 left 到 right之间的节点,则我们需要获取到第 left - 1 和 right + 1 个节点,然后对left 到 right之间的节点进行反转,第left - 1 个节点的next指针指向反转后的头部,反转后的最后一个节点的next指针指向right + 1完成反转操作。需要注意,这里涉及到可以有更换新的头节点问题。首先对给定的参数进行判断,若不满足。

2023-09-17 22:57:52 140

原创 C语言 LeetCode 19 删除链表的倒数第 N 个结点

要删除倒数第N个节点,就需要知道倒数第N个节点的前一个节点,若链表长度为len,那么倒数第N个节点的前驱节点应该是第len - N。若n < 0,我们再对链表进行遍历,每经过一个节点n值就加上1,当 n == 0时,当前访问的节点就是待删除节点的前驱节点。如果链表为空或者给定参数n小于1,这种情况直接返回。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。

2023-09-17 22:56:59 159 1

原创 LinuxC应用开发-系统IO

标准IO中的文件操作都是依赖于文件IO。

2023-09-14 20:47:48 93 1

原创 Linux-C应用开发-标准IO

两者都可以使用的情况下优先使用标准IO,标准IO依赖于系统调用IO。

2023-09-10 20:23:30 75 1

原创 C语言练习--Leetcode1289下降路径最小和II

3,4,8], [3,4,9], [3,5,7], [3,5,9]下降路径中数字和最小的是 [1,5,7] ,所以答案是 13。数组中的每一行选择一个数字,且按顺序选出来的数字中,相邻数字不在原数组的同一列。相似,都是求从第0行下降到最后一行的最小路径和,这里我们可以构建一个二维数组。输入:grid = [[1,2,3],[4,5,6],[7,8,9]],其中的每个元素表示从起始位置到当前位置。元素之外的其它元素的最小值加上当前。输入:grid = [[7]]的最小路径,不难得出。

2023-08-13 16:42:12 41 1

原创 C语言-LeetCode1428至少有一个1的最左端列

BinaryMatrix.dimensions() 返回含有 2 个元素的列表 [rows, cols],表示这是一个 rows * cols的矩阵。给定一个这样的二进制矩阵,返回至少包含一个 1 的最左端列的索引(从 0 开始)。我们称只包含元素 0 或 1 的矩阵为二进制矩阵。输入: mat = [[0,0,0,1],[0,0,1,1],[0,1,1,1]]输入: mat = [[0,0],[1,1]]输入: mat = [[0,0],[0,1]]输入: mat = [[0,0],[0,0]]

2023-08-10 19:26:16 47 1

原创 C语言练习-LeetCode1008前序遍历构造二叉搜索树

我们得到根结点后将数组分为左子树部分和右子树部分,根据二叉搜索树的特征,右子树的值都是大于根结点,在此我们只需要找到第一个大于根节点的值的位置。区分完左右子树后,我们可以通过先序遍历来构建我们的树,构建一个函数。对于给定的测试用例,总是有可能找到具有给定需求的二叉搜索树。数组是由二叉树先序遍历得到,所以第一个元素。给定一个整数数组,它表示BST(即。是一棵二叉树,其中每个节点,首先显示节点的值,然后遍历。即可将数组分为左子树部分。,构造树并返回其根。位置的元素构建成树。

2023-07-28 11:27:14 79 1

原创 C语言练习--LeetCode 238除自身以外数组的乘积

的额外空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组。通过观察,我们可以将乘法分为两个部分,一部分是小于。之中任意元素的全部前缀元素和后缀的乘积都在。这里最容易想到的方法就是遍历时计算出。相反,我们可以从后向前遍历,计算。时间复杂度内完成此题。并将乘积保存到一个数组中。之外其余各元素的乘积。

2023-07-21 20:55:34 37 1

原创 C语言练习-LeetCode1427字符串左右移

直接向左移动 3 次的结果是一样的,所以,我们在移动之前可以先统计出需要移动的次数,由于在方法二中我们将移动简化为只有向左移动一种情况,那么不需要考虑正负问题。方法一中,我们将移动分为了向左移动和向右移动,而这里我们可以将向右移动看成向左移动,只不过是移动次数不在是shift数组中的。输入:s = “abcdefg”, shift = [[1,1],[1,1],[0,2],[1,3]][1,1] 表示右移 1 位。输入:s = “abc”, shift = [[0,1],[1,2]]

2023-07-20 12:36:02 439 1

原创 C语言---LeetCode 525连续数组

值与当前相同的项,如果存在,哈希表存放的是这个值第一次出现的下标 ,将当前遍历下标i减去哈希表中存放的下标即为当前满足要求的子数组长度,与。来记录现在已经出现过的1和0的个数,遇1加一,遇0减一. 遍历整个nums数组, 变化。[0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。[0, 1] 是具有相同数量 0 和 1 的最长连续子数组。的最长连续子数组,并返回该子数组的长度。得到的就是我们的目标子数组长度,因为如果。中多出的1的个数是相等的,那么在。中就是满足条件的子数组。

2023-07-19 20:33:06 173

原创 C语言-数据类型

在C语言中数据类型可分为4类,分别是基本数据类型、构造类型、指针类型和空类型。

2023-07-18 21:10:28 40 1

原创 C语言---LeetCode 1046. 最后一块石头的重量

1**解释:**先选出 7 和 8,得到 1,所以数组转换为 [2,4,1,1,1],再选出 2 和 4,得到 2,所以数组转换为 [2,1,1,1],接着是 2 和 1,得到 1,所以数组转换为 [1,1,1],最后选出 1 和 1,得到 0,最终数组转换为 [1],这就是最后剩下那块石头的重量。假设石头的重量分别为 和 ,且。如果没有石头剩下,就返回。,便能获取数组中第一大和第二大值,分别赋值给。有一堆石头,每块石头的重量都是正整数。中只有一个石头,返回这个石头的重量。中,作为新石头的重量。

2023-07-18 16:41:45 63 1

原创 leet 415. 字符串相加 C语言

由于我们是从后向前遍历的数组,在结果数组中数据的存放是低位的在前面而高位的数在后面,我们需要对其进行逆序操作得到最终结果。当num1中元素也访问完毕时,此时应该判断是否还有进位,即pro 是否 等于1,若是还有进位则添加进入结果数组中。当运算结束后,i,j向前移动,pro = (6 + 7) / 10 = 1,进位为1;刚开始时,i ,j分别指向最后一个元素,从后往前访问数组内容,进位pro = 0;), 也不能直接将输入的字符串转换为整数形式。,计算它们的和并同样以字符串形式返回。构建一个数组用于存放。

2023-07-17 16:15:28 1360 1

原创 C语言——LeetCode454 四数相加

给你四个整数数组nums1nums2nums3和nums4,数组长度都是n,请你计算有多少个元组2两个元组如下:1. (0, 0, 0, 1) -> nums1[0] + nums2[0] + nums3[0] + nums4[1] = 1 + (-2) + (-1) + 2 = 02. (1, 1, 0, 0) -> nums1[1] + nums2[1] + nums3[0] + nums4[0] = 2 + (-1) + (-1) + 0 = 01。

2023-07-16 17:47:32 426 1

原创 LeetCode 18 四数之和

给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且的四元组bc,和d互不相同。

2023-07-15 18:59:16 32 1

原创 LeetCode 49字母异位词分组 C语言

7-12 LeetCode 49 字母异位词分组给你一个字符串数组,请你将组合在一起。可以按任意顺序返回结果列表。是由重新排列源单词的所有字母得到的一个新单词。

2023-07-13 16:23:25 267 1

原创 LeetCode栈和队列

栈和队列:​ 栈是限定仅在表尾进行插入和删除操作的后进先出(LIFO)的线性表​ 队列是只允许在表的一端进行插入,在另一端删除元素的先进先出(FIFO)的线性表225. 用队列实现栈使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操

2020-12-02 18:03:05 95

原创 LeetCode移动零

283. 移动零难度简单851收藏分享切换为英文接收动态反馈给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路:​ 使用 left 和 i 分别表示以排好序尾部和当前元素,i 不断向右移动,当 i 指向非零元素时,将 left 指向元素与当前元素进行交换,若 i 指向0不进行任何操作。java代码:

2020-11-19 20:14:15 254

原创 LeetCode有效括号

20. 有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。思路:检验括号的有效性可以使用栈这一数据结构。由于栈的特性:后进先出(Last In First Out),非常适合解决对称匹配类的问题。确认所使用的数据结构后,应该考虑括号不匹配的几种情况:第一种情况:左括号多余,不匹配第二种情况:右括号多余,不匹配第三种

2020-11-13 22:01:09 76

原创 LeetCode合并两个有序链表

21. 合并两个有序链表难度简单1372收藏分享切换为英文接收动态反馈将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路——递归利用递归实现两个有序链表的相加。递归的简单解释:函数在运行过程中自己调用自己,调用的过程就叫做递归.类似于高中函数中的f(x)=x+f(x−1);由于递归的特殊性,在每一次调用

2020-11-12 16:27:43 85

原创 LeetCode两数相加

每日LeeCode——2. 两数相加难度中等5238收藏分享切换为英文接收动态反馈给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 46

2020-11-11 21:55:14 122

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除