LeetCode(java数据结构与算法)
文章平均质量分 62
刷题
喝咖啡的皮卡丘
正在学习java的大三学生,会分享一些整理的经典问题和知识点、注意事项等。
展开
-
力扣做题分享(12)盛最多水的容器,双指针求解最优解,完整思路,理解双指针思路。
题目:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。...原创 2021-10-28 19:02:21 · 162 阅读 · 0 评论 -
力扣做题思路分享(11)网格游戏,通过分析简化题目
题目:给你一个下标从 0 开始的二维数组 grid ,数组大小为 2 x n ,其中 grid[r][c] 表示矩阵中 (r, c) 位置上的点数。现在有两个机器人正在矩阵上参与一场游戏。两个机器人初始位置都是 (0, 0) ,目标位置是 (1, n-1) 。每个机器人只会 向右 ((r, c) 到 (r, c + 1)) 或 向下 ((r, c) 到 (r + 1, c)) 。游戏开始,第一个 机器人从 (0, 0) 移动到 (1, n-1) ,并收集路径上单元格的全部点数。对于路径上所有单原创 2021-09-26 19:59:11 · 350 阅读 · 0 评论 -
力扣做题思路分享(10)增量元素之间的最大差值。简单的动态规划。
题目:给你一个下标从0开始的整数数组nums,该数组的大小为n,请你计算nums[j] - nums[i]能求得的最大差值,其中0 <= i < j < n且nums[i] < nums[j]。返回最大差值。如果不存在满足要求的i和j,返回-1。思路:拿到这道题,我们分析返回值的情况,要么是存在至少一个后面的大于前面的,这时返回差值;要么不存在,这时就返回-1。求最大差值的思路:我们可以用一个数来存储前面数的...原创 2021-09-26 19:19:59 · 310 阅读 · 0 评论 -
力扣做题思路分享(9)志愿者调配(力扣挑战赛),解方程的巧用。代码加思路。
目录题目:思路:注意:代码:结果:题目:「力扣挑战赛」有 n 个比赛场馆(场馆编号从 0 开始),场馆之间的通道分布情况记录于二维数组 edges 中,edges[i]= [x, y] 表示第 i 条通道连接场馆 x 和场馆 y(即两个场馆相邻)。初始每个场馆中都有一定人数的志愿者(不同场馆人数可能不同),后续 m 天每天均会根据赛事热度进行志愿者人数调配。调配方案分为如下三种:将编号为 idx 的场馆内的志愿者人数减半;将编号为 idx 的场馆相邻的场馆的志...原创 2021-09-26 09:53:52 · 185 阅读 · 1 评论 -
力扣做题思路分享(8)回文数
题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一.原创 2021-09-25 13:04:30 · 97 阅读 · 0 评论 -
力扣做题思路分享(7)字符串转换整数
目录题目:思路:注意点:代码:结果:题目:请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的...原创 2021-09-24 15:26:51 · 81 阅读 · 0 评论 -
力扣做题思路分享(6)寻找两个正序数组的中位数。通过索引锻炼思维能力。
题目:给定两个大小分别为 m 和 n 的正序(从小到大)数组nums1 和nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5示例 3:输入:nums1 =..原创 2021-09-23 17:02:35 · 89 阅读 · 0 评论 -
力扣做题思路分享(5)字形变换,List和StringBuilder的组合使用。
目录题目:思路:代码:题目:将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "PAYPALISHIRING"行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s...原创 2021-09-22 14:52:55 · 452 阅读 · 0 评论 -
力扣做题思路分享(4)整数反转,字符串反转方法,数学计算方法,两种方法求解,代码加注释。
目录题目思路1:结果1:思路2:结果2:题目给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ,就返回 0。(这里是2的31次方)假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:...原创 2021-09-14 11:13:24 · 187 阅读 · 0 评论 -
力扣做题思路分享(3)心算挑战,通过部分排序减少时间,java代码实现加思路注释
目录题目:思路:代码:结果:题目:「力扣挑战赛」心算项目的挑战比赛中,要求选手从 N 张卡牌中选出 cnt 张卡牌,若这 cnt 张卡牌数字总和为偶数,则选手成绩「有效」且得分为 cnt 张卡牌数字总和。给定数组 cards 和 cnt,其中 cards[i] 表示第 i 张卡牌上的数字。 请帮参赛选手计算最大的有效得分。若不存在获取有效得分的卡牌方案,则返回 0。示例 1:输入:cards = [1,2,8,9], cnt = 3输出:18解释:选择数字为原创 2021-09-13 12:03:52 · 426 阅读 · 0 评论 -
力扣做题思路分享(2)两数之和,一起看一下哈希表的魅力!
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], ta...原创 2021-09-10 09:01:41 · 98 阅读 · 1 评论 -
力扣做题思路分享(1)有效数字问题,java代码加解析,冲冲冲!
有效数字(按顺序)可以分成以下几个部分:一个 小数 或者 整数(可选)一个 'e' 或 'E' ,后面跟着一个 整数小数(按顺序)可以分成以下几个部分:(可选)一个符号字符('+' 或 '-')下述格式之一:至少一位数字,后面跟着一个点 '.'至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字一个点 '.' ,后面跟着至少一位数字整数(按顺序)可以分成以下几个部分:(可选)一个符号字符('+' 或 '-')至少一位数字部分有效数字列举如下:["2", "008.原创 2021-09-08 20:56:22 · 143 阅读 · 0 评论