LeetCode
文章平均质量分 78
哪吒要进厂啦
如果有来生,
要做一棵树,
站成永恒,
没有悲欢的姿势。
一半在土里安详,
一半在风里飞扬,
一半洒落阴凉,
一半沐浴阳光,
非常沉默非常骄傲,
从不依靠 从不寻找。
展开
-
❤️【LeetCode系列】两数相加❤️
目录1、题目描述2、算法分析3、代码实现1、题目描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0] 输出:[0]示例 3:输原创 2021-06-21 17:36:34 · 164 阅读 · 5 评论 -
❤️【LeetCode系列】两数之和❤️
目录1、题目描述2、算法分析3、代码实现一日不刷题,便辗转反侧!!!1、题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回原创 2021-06-21 13:58:26 · 207 阅读 · 2 评论 -
LeetCode28. 实现 strStr()
目录一、每日一题1、题目描述2、解题思路3、代码实现二、参考链接一、每日一题1、题目描述leetcode28. 实现 strStr()给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “b原创 2021-03-28 15:42:42 · 116 阅读 · 0 评论 -
LeetCode11.盛最多水的容器、两数之和、双指针解法
目录一、每日一题1、题目描述2、解题思路3、c++代码实现二、再来一题1、题目描述2、解题思路3、c++代码实现三、参考链接一、每日一题1、题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。示例1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [原创 2021-03-23 15:56:47 · 128 阅读 · 0 评论 -
LeetCode191. 位1的个数(算数左移、数据类型)
目录一、每日一题1、题目描述:2、解题思路:3、代码部分:二、知识点扩充1、左移和右移2、c++中的数据类型总结三、其它参考链接一、每日一题1、题目描述:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。提示: 请注意,在某些语言(如Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java原创 2021-03-22 23:53:01 · 103 阅读 · 0 评论 -
LeetCode133:给定一个字符串,找出最长的不具有重复字符的子串的长度。例如,“abcabcbb”不具有重复字符的最长子串是“abc”,长度为3。对于“bbbbb”,最长的不具有重复字符的子串是
题目描述给定一个字符串,找出最长的不具有重复字符的子串的长度。例如,“abcabcbb”不具有重复字符的最长子串是“abc”,长度为3。对于“bbbbb”,最长的不具有重复字符的子串是“b”,长度为1。示例1输入 ::""输出 : 0思路解析:本题目可以说是一个很典型的利用滑动窗口的字符串类型的题目。设定两个指针,限定了一个窗口,窗口内的字符不能够重复,每次右指针移动时都会检查窗口内是否是重复元素,如果有的话那么调整左指针的位置,定义一个res值记录最大的窗口值就是问题的解。class S原创 2020-10-04 20:18:49 · 358 阅读 · 0 评论 -
LeetCode133:最接近的三数之和(给出含有n个整数的数组s,找出s中和加起来的和最接近给定的目标值的三个整数。返回这三个整数的和。你可以假设每个输入都只有唯一解。)
题目描述给出含有n个整数的数组s,找出s中和加起来的和最接近给定的目标值的三个整数。返回这三个整数的和。你可以假设每个输入都只有唯一解。例如,给定的整数 S = {-10 20 10 -40}, 目标值 = 10.最接近目标值的和为 20. (-10 + 20 + 10 = 20).示例1输入[0,0,0],1复制0思路分析:本题和求三数之和十分类似,即给出一个数组和目标值,问数组中是否存在三数之和等于目标值,解题思路是类似的。首先将数组进行一个简单排序,定义三个指针,当前元素指原创 2020-10-04 16:11:33 · 398 阅读 · 0 评论 -
LeetCode135:最长公共前缀(编写一个函数来查找字符串数组中的最长公共前缀。)
题目描述编写一个函数来查找字符串数组中的最长公共前缀。示例1 :输入[“a”,“b”]输出“”一、水平扫描法:在线处理,不断调整公共前缀的长度class Solution {public: /** * * @param strs string字符串vector * @return string字符串 */ string longestCommonPrefix(vector<string>& strs) {原创 2020-10-04 15:02:56 · 292 阅读 · 0 评论 -
LeetCode102:旋转图像(给出一个用二维矩阵表示的图像 返回该图像顺时针旋转90度的结果)
题目描述给出一个用二维矩阵表示的图像 ,返回该图像顺时针旋转90度的结果方法一:使用辅助空间class Solution {public: void rotate(vector<vector<int> > &matrix) { //空二维矩阵的处理 if(matrix.empty()) return ; //定义辅助空间 vector<vector<int&原创 2020-10-03 11:27:39 · 177 阅读 · 0 评论 -
LeetCode62:搅乱字符串(动态规划)
题目描述题目给出一个字符串s1,我们可以用递归的方法将字符串分成两个非空的子串来将s1表示成一个二叉树,下面是s1=“great”的一种二叉树的表现形式:great/ gr eat/ \ / g r e at/ a t将字符串乱序的方法是:选择任意的非叶子节点,交换它的两个孩子节点。例如:如果我们选择节点“gr”交换他的两个孩子节点,就会产生一个乱序字符串"rgeat".rgeat/ rg eat/ \ / r原创 2020-09-25 15:17:58 · 139 阅读 · 0 评论 -
LeetCode66-67:删除有序链表中重复出现的元素,删除有序链表中的重复元素
题目66描述删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为1→1→2,返回> 1→2.给出的链表为1→1→2→3→3,返回1→2→3.示例1输入 {1,1,2}输出 {1,2}/** * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: /** * * @p原创 2020-09-25 14:33:17 · 858 阅读 · 0 评论 -
LeetCode63:划分链表(双指针)
题目描述给出一个链表和一个值 ,以 为参照将链表划分成两部分,使所有小于 的节点都位于大于或等于 的节点之前。两个部分之内的节点之间要保持的原始相对顺序。例如:给出 > 1→4→3→2→5→2 和 x=3,返回> 1→2→2→4→3→5.示例1{1,1},0输出{1,1}思路分析:将原链表顺序遍历拆分为两个小链表,将其首尾相接就可以得到答案,不需要额外存储空间,时间复杂度为O(n)。/** * struct ListNode { * int val; * st原创 2020-09-25 13:10:24 · 143 阅读 · 0 评论 -
LeetCode75:矩阵查找(二分查找)
题目描述请写出一个高效的在m*n矩阵中判断目标值是否存在的算法,矩阵具有如下特征: 每一行的数字都从左到右排序每一行的第一个数字都比上一行最后一个数字大 例如: 对于下面的矩阵:[[1, 3, 5, 7],[10, 11, 16, 20],[23, 30, 34, 50]]要搜索的目标值为3,返回true;方法一:思路分析:分块查找后再进行二分查找或者顺序查找class Solution {public: /** * * @param m原创 2020-09-25 00:37:45 · 320 阅读 · 0 评论 -
LeetCode7:求二叉树的前序遍历(迭代法)
题目描述求给定的二叉树的前序遍历。 例如: 给定的二叉树为{1,#,2,3},返回:[1,2,3]. 备注;用递归来解这道题很简单,你可以给出迭代的解法么?思路分析:先序遍历:根左右1.无论是哪种遍历方式,用迭代实现都是用栈去做的,所以我们对栈的先入后出的顺序要很清楚。2.对于先序遍历每次都是要先遍历根节点,然后将遍历左子树,最后是右子树,但是由于栈是先入后出的,所以我们压栈的时候就要注意了,每次应该先压右子树,再压左子树!这是这道题的核心关键3.所以到这里我们的想法就基本出来了,先将原创 2020-09-18 15:07:19 · 172 阅读 · 0 评论 -
LeetCode1:二叉树的最小深度
题目描述求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。思路简析: 递归遍历整棵树,注意节点的类型讨论:根节点:空树返回0,只有根节点返回1有一个孩子的节点:选择唯一的子树有两个孩子的节点:选择到达叶子结点距离较小的子树叶子结点:返回值为1/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */cl原创 2020-09-18 11:10:02 · 101 阅读 · 0 评论