LeetCode经典算法题
LeetCode刷题记录
1uuue
这个作者很懒,什么都没留下…
展开
-
LeetCode经典算法题 no.118杨辉三角
给定一个非负整数numRows,生成「杨辉三角」前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。原创 2022-08-19 16:10:43 · 1369 阅读 · 0 评论 -
LeetCode经典算法题 no.69 x的平方根
题目:x的平方根题目描述:实例展示:思路分析:本题要求:在不使用开根号函数(Math.sqrt())的情况下,得到 x的平方根的整数部分若使用Math.sqrt():【此解法不符合题意,只起补充作用】本题可采用二分查找方法,其中对于0和1两种特殊情况需要单独拿出来写设上届为x,用符号max表示;下届为0,用符号min表示;中间值为mid代码展示:...原创 2022-07-13 11:07:54 · 296 阅读 · 0 评论 -
LeetCode经典算法题 no.67 二进制求和
题目:二进制求和题目描述:实例展示:方法一:使用BigInteger(大整数类)格式:BigInterger(具体数字,进制).add(new BigInterger(具体数字,进制)).toString(进制)含义:计算两数之和,然后再转化为字符串输出补充:Java中BigInteger用法详解https://blog.csdn.net/qq_49174867/article/details/123587380代码展示:方法二:使用Interger.toBinaryString,先将a和b转换成十进原创 2022-07-11 14:34:18 · 132 阅读 · 0 评论 -
LeetCode经典算法题 no.28 实现strStr()
题目:题目描述:实例展示:所用知识点:indexOf():表示索引,它可以在给定字符串中查找字符,并返回字符所对应的下标,如果找不到,则返回-1indexOf()的四种用法:1)indexOf(int ch):在给定字符串中查找字符,找到返回字符数组所对应的下标,找不到返回-12)indexOf(String str):在给定字符串中查找另一个字符串3)indexOf(int ch,int fromInedx):返回指定字符在字符串中第一次出现的索引,如果此字符串中没有这样的字符,返回-14)indexOf原创 2022-07-09 23:44:14 · 92 阅读 · 0 评论 -
LeetCode经典算法题 no.94 二叉数的中序遍历
题目: 二叉数的中序遍历题目描述:给定一个二叉树的根节点root,返回它的中序遍历。实例展示:情形一:输入:root = [1,null,2,3]输出:[1,3,2]情形二:输入:root = []输出:[]情形三:输入:root = [1]输出:[1]基础知识回顾:树 :具有父子关系的一种结构节点:数中的没一个元素根节点:最上面的那一个叶子节点:没有孩子的节高度:从底层向上算深度:从顶层向下计算层:从根节点向下计算...原创 2022-04-17 20:11:36 · 822 阅读 · 0 评论 -
LeetCode经典算法题 no.66 加一
题目:加一题目描述:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。实例展示:情形一:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。情形二:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。情形三:输入:digits = [原创 2022-04-16 13:38:57 · 120 阅读 · 0 评论 -
LeetCode经典算法题 no.58 最后一个单词的长度
题目:最后一个单词的长度题目描述:给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。实例展示:情形一:输入:s = "Hello World"输出:5解释:最后一个单词是“World”,长度为5。情形二:输入:s = " fly me to the moon "输出:4解释:最后一个单词是“moon”,长度为4。情形三:输入:s = "原创 2022-04-16 10:51:54 · 772 阅读 · 2 评论 -
LeetCode经典算法题 no.35 搜索插入位置
题目:题目描述:实例展示:思路分析:代码展示:原创 2022-04-15 22:05:42 · 227 阅读 · 0 评论 -
LeetCode经典算法题 no.78 子集
题目:子集题目描述:给你一个整数数组nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。实例展示:情形一:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]情形二:输入:nums = [0]输出:[[],[0]]思路分析:前提铺垫:关于List<List<Integer>>...原创 2022-04-14 15:03:20 · 708 阅读 · 0 评论 -
LeetCode经典算法题 no.455 分发饼干
题目:分发饼干题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j]>= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。实例展示:情形一:输入: g = [1,2,3], s = [1,1]输出: 1解释:...原创 2022-04-13 11:27:27 · 352 阅读 · 0 评论 -
LeetCode经典算法题 no.53 最大子数组和
题目:最大子数组和题目描述:给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。实例展示:情形一:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。情形二:输入:nums = [1]输出:1情形三:输入:nums = [5,4,-1,7,8]输出:23思路分析:1)实现定义两...原创 2022-04-12 16:36:51 · 1302 阅读 · 0 评论 -
LeetCode经典算法题 no.509 斐波那契数列
题目:斐波那契数列题目描述:斐波那契数(通常用F(n) 表示)形成的序列称为 斐波那契数列 。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1)= 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给定n ,请计算 F(n) 。实例展示:情形一:输入:n = 2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1情形二:输入:n = 3输出:2解释:F...原创 2022-04-11 22:49:35 · 706 阅读 · 0 评论 -
LeetCode经典算法题 no.121 买卖股票的最佳时机
题目:买卖股票的最佳时机题目描述:给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。实例展示:情形一:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的..原创 2022-04-11 20:51:23 · 159 阅读 · 0 评论 -
LeetCode经典算法题 no.27 移除元素
题目:移除元素题目描述:给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。实例展示:情形一:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考...原创 2022-04-10 13:11:45 · 270 阅读 · 0 评论 -
LeetCode经典算法题 no.26 删除有序数组中的重复项
题目:删除有序数组中的重复项题目描述:给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么nums的前 k 个元素应该保存最终结果。将最终结果插入nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O...原创 2022-04-10 00:25:35 · 1601 阅读 · 0 评论 -
LeetCode经典算法题 no.21 合并两个有序链表
题目:合并两个有序链表题目描述:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。实例展示:示例1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1 = [], l2 = []输出:[]代码:...原创 2022-04-09 22:12:12 · 1148 阅读 · 0 评论 -
LeetCode经典算法题 no.89 格雷编码
题目:格雷编码题目描述:n 位格雷码序列 是一个由 2^n 个整数组成的序列,其中: 每个整数都在范围 [0, 2^n - 1] 内(含 0 和 2^n - 1) 第一个整数是 0 一个整数在序列中出现 不超过一次 每对 相邻 整数的二进制表示 恰好一位不同 ,且 第一个 和 最后一个 整数的二进制表示 恰好一位不同给你一个整数 n ,返回任一有效的 n 位格雷码序列 。实例展示:情形一:输入:n = 2输出:[0...原创 2022-04-07 23:21:22 · 386 阅读 · 0 评论 -
LeetCode经典算法题no.14 最长公共前缀
题目:最长公共前缀题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。实例展示:示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。一些需要用到的方法:1)startsWith():改方法用于检测字符串是否能以指定的前缀开始String str = ne.原创 2022-04-06 19:43:30 · 123 阅读 · 0 评论 -
LeetCode经典算法题no.13 罗马数字转整数
题目:罗马数字转整数题目描述:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1 。12 写做XII,...原创 2022-04-06 12:45:47 · 103 阅读 · 0 评论 -
LeetCode经典算法题no.9 回文数
题目:回文数题目描述:给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。样例展示:情形一:输入:x = 121输出:true情形二:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。情形三:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个...原创 2022-04-05 22:09:07 · 332 阅读 · 0 评论 -
LeetCode经典算法题no.20 有效括号
题目:有效括号题目描述:给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。样例展示:输入:s = "()"输出:true输入:s = "(]"输出:false辅助工具:栈(stack)。我们将读取到的符号依次入栈,栈具有先进后出的特性,一旦左右括号匹配成功,则 pop出栈,全部顺利匹配成功,栈中无元素,才返回true,其余皆f.原创 2022-04-05 12:05:32 · 106 阅读 · 0 评论 -
LeetCode经典算法题no.2:两数相加
题目:两数相加要求描述:给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。示例结果展示:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.思路一:迭代法伪代码分析:function(L1,L2)-> Lis...原创 2022-04-04 15:40:02 · 92 阅读 · 0 评论 -
LeetCode经典算法题no.1 两数之和
题目:两数之和要求:给定一个整数数组 nums 和一个整数目标值 target,在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。过程描述举例:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。方法一:暴力法class Solution{ public int[] twoSum(int[] nums,int target){原创 2022-03-31 13:10:45 · 908 阅读 · 0 评论