刷题
卷心菜菜_
这个作者很懒,什么都没留下…
展开
-
LeeCode:最长和谐子序列(C++)
和谐数组是指一个数组(长度>=2)里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。原创 2022-08-15 10:27:42 · 262 阅读 · 1 评论 -
LeeCode:有效数独(C++)
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可原创 2022-08-11 17:02:25 · 542 阅读 · 0 评论 -
LeeCode:寻找右区间(C++)
给定一组区间(包含起始点和终点),对于每一个区间 i,检查是否存在一个区间 j,它的起始点大于或等于区间 i 的终点,这可以称为 j 在 i 的“右侧”。原创 2022-08-10 16:20:04 · 73 阅读 · 0 评论 -
LeeCode:搜索旋转数组II(C++)
例如,数组 [2,5,6,0,0,1,2] ,可以知道是从[0,0,1,2,2,5,6] 旋转变来的 )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。假设我们的数组是一个按照升序排序的数组在预先未知的某个点上进行了旋转得到的。输入: nums = [2,5,6,0,0,1,2], target = 0。输入: nums = [2,5,6,0,0,1,2], target = 3。输出“true”或“false”,不包括引号。最后输入整数target。...原创 2022-08-09 22:50:56 · 147 阅读 · 0 评论 -
LeeCode:搜索二维矩阵(C++)
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。因为是有序矩阵,考虑二分查找,先找到target在矩阵的哪一行,再在该行进行二分查找。每行的第一个整数大于前一行的最后一个整数。首先输入matrix的行数m、列数n,每行中的整数从左到右按升序排列。最后输入一个整数target。然后输入m行,每行n个整数。输出true或false。...原创 2022-08-09 17:06:44 · 128 阅读 · 0 评论 -
LeeCode(C++):二叉树的锯齿形层次遍历
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。层序遍历,每一层的结果用一个集合暂存,当遇到偶数层时将集合中的元素逆置。首先输入结点的数目n(注意,这里的结点包括题中的null空结点)给定二叉树 [3,9,20,null,null,15,7],然后输入n个结点的数据,需要填充为空的结点,输入null。输出结果,每个数据的后面跟一个空格。...原创 2022-08-03 23:04:34 · 119 阅读 · 0 评论 -
LeeCode(C++):路径总和 III
给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)...原创 2022-08-03 22:34:36 · 101 阅读 · 0 评论 -
LeeCode(C++):路经总和
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。采用递归算法实现,当传入的节点是叶子节点时递归结束,当向下一次递归时,sum=原来的sum-当前节点值。返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。首先输入结点的数目n(注意,这里的结点包括题中的null空结点)然后输入n个结点的数据,需要填充为空的结点,输入null。给定如下二叉树,以及目标和 sum = 22,说明: 叶子节点是指没有子节点的节点。..原创 2022-08-03 16:22:17 · 74 阅读 · 0 评论 -
LeeCode(C++):二叉树的层次遍历 II
给定一个二叉树,返回其节点值自底向上的层次遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)按照层序遍历的思路,将每一层的遍历结果暂存在一个vector中,再将最终的结果集合逆序即可。首先输入结点的数目n(注意,这里的结点包括题中的null空结点)给定二叉树 [3,9,20,null,null,15,7],然后输入n个结点的数据,需要填充为空的结点,输入null。输出结果,每个数据的后面跟一个空格。...原创 2022-08-03 16:03:06 · 134 阅读 · 0 评论 -
LeeCode(C++):翻转矩阵后的得分
有一个二维矩阵 A ,其中每个元素的值为 0 或 1 。翻转是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。原创 2022-07-26 22:54:32 · 299 阅读 · 0 评论 -
LeeCode:去除重复字母
给你一个仅包含小写字母的字符串,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。原创 2022-07-26 09:47:39 · 613 阅读 · 0 评论 -
LeeCode:救生艇(贪心)
第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回载到每一个人所需的最小船数。(保证每个人都能被船载)...原创 2022-07-25 18:56:31 · 103 阅读 · 0 评论 -
LeeCode(C++):买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。原创 2022-07-25 18:10:55 · 592 阅读 · 0 评论 -
LeeCode(C++):使括号有效的最少添加
给定一个由 ‘(’ 和 ‘)’ 括号组成的字符串 S,我们需要添加最少的括号( ‘(’ 或是 ‘)’,可以在任何位置),以使得到的括号字符串有效。从形式上讲,只有满足下面几点之一,括号字符串才是有效的:它是一个空字符串,或者它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者它可以被写作 (A),其中 A 是有效字符串。给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数。示例 1:输入:“())”输出:1示例 2:输入:“(((”输出:3示例 3:输入:“原创 2022-07-13 14:47:22 · 220 阅读 · 0 评论 -
LeetCode:重排链表C++
给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.可使用以下代码,完成其中的reorderList函数,其中形参head指向无头结点单链表。输入说明首先输入链表长度len,然后输入len个整数原创 2022-07-05 23:37:07 · 202 阅读 · 1 评论 -
LeetCode:旋转链表(C++)
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2:输入: 0->1->2->NULL, k = 4输出: 2->0->1->NULL解释:向右旋转 1 步: 2->0->1->NULL向右旋转 2 步: 1->2->0原创 2022-07-06 18:14:00 · 388 阅读 · 0 评论