![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
刷题
日常学习刷题历程记录
奔跑在孤傲的路上~
这个作者很懒,什么都没留下…
展开
-
2022-11-26 链表-简单-206. 反转链表
方法1:迭代。利用链表的特点。第一个pre是null,cur=head,当前cur.next为null= null){//结束条件,链表循环完成//cur的next是现在链表的prepre = cur;//保存当前cur//指针往后走一步}}}方法二:递归}}}原创 2022-11-27 16:47:28 · 258 阅读 · 0 评论 -
2022-08-09 哈希表-中等-《535. TinyURL 的加密与解密》
设计题、哈希表原创 2022-08-09 13:22:10 · 111 阅读 · 0 评论 -
第 84 场双周赛 《6141. 合并相似的物品》--java
刷题:map相关原创 2022-08-07 12:38:11 · 327 阅读 · 0 评论 -
2022-05-29 字符串-简单
1221. 分割平衡字符串标签:贪心、字符串、计数在一个 平衡字符串 中,'L' 和 'R' 字符的数量是相同的。解法一:因为原字符串也是一个平衡字符串。要得到「可以通过分割得到的平衡字符串的最大数量」,那么,每次构成一个平衡字符串时,就给计数count+1.class Solution { public int balancedStringSplit(String s) { int lCount = 0, rCount = 0; int l..原创 2022-05-29 09:52:32 · 74 阅读 · 0 评论 -
2022-05-06 字符串-简单-《28. 实现 strStr()》
标签:双指针、字符串、字符串匹配题目描述实现strStr()函数。给你两个字符串haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当needle是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当needle是空字符串时我们应当返回 0 。这与 C 语言的strstr()以及 Java 的indexOf()定义相...原创 2022-05-06 08:31:04 · 92 阅读 · 0 评论 -
2022-04-07 字符串-简单-《796. 旋转字符串》
题目:796. 旋转字符串发现就真的特别有意思的解法,当2个s组装在一起的时候,如果包含了目标字符串,那就肯定能旋转得到。(发现人生也是也,有时候转变个角度,马上就能看到不一样的事情!!!啊,我不要钻牛角尖了!!!)class Solution { public boolean rotateString(String s, String goal) { if(s.length() == goal.length() && (s+s).contains(goal原创 2022-04-07 23:11:48 · 113 阅读 · 0 评论 -
2022-04-03 数组-简单-《108. 将有序数组转换为二叉搜索树》
题目链接:108. 将有序数组转换为二叉搜索树标签:树、二叉搜索树、数组、分治、二叉树方法一:中序遍历,总是选择中间位置左边的数字作为根节点class Solution { public TreeNode sortedArrayToBST(int[] nums) { TreeNode tree = formTree(nums,0,nums.length-1); return tree; } public TreeNode formTree原创 2022-04-03 09:43:38 · 480 阅读 · 0 评论 -
2022-03-20 数组-简单-《283. 移动零》
17 “热爱可抵岁月漫长。”标签:数组、双指针题目链接:283. 移动零题目描述:定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]提示:1 <= nums.length <= 104-231&...原创 2022-03-20 10:30:57 · 86 阅读 · 0 评论 -
2022-03-20 数组-简单-《349.两个数组的交集》
“热爱可抵岁月漫长。”标签:数组、哈希表、双指针、二分查找、排序题目链接:力扣题目描述:给定两个数组nums1和nums2 ,返回 它们的交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的提示:...原创 2022-03-20 09:53:37 · 276 阅读 · 0 评论 -
2022-03-16 数组-简单-《268.丢失的数字》
标签:数组、哈希表、滑动窗口题目链接:题目描述:给定一个包含 [0, n]中n个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内...原创 2022-03-16 17:21:58 · 93 阅读 · 0 评论 -
2022-03-13 数组-简单-《2011. 执行操作后的变量值》
标签:数组、字符串、模拟题目链接:力扣题目描述:存在一种仅支持 4 种操作和 1 个变量 X 的编程语言:++X 和 X++ 使变量 X 的值 加 1--X 和 X-- 使变量 X 的值 减 1最初,X 的值是 0给你一个字符串数组 operations ,这是由操作组成的一个列表,返回执行所有操作后, X 的 最终值 。示例 1:输入:operations = ["--X","X++","X++"]输出:1解释:操作按下述步骤执行:最初,X = 0--X.原创 2022-03-13 14:11:33 · 70 阅读 · 0 评论 -
2022-03-13 数组-简单-《1480. 一维数组的动态和》
标签:数组、前缀和题目链接:力扣题目描述:给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。示例 1:输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。示例 2:输入:nums = [1,1,1,1,1]输出:[1,2,3,4,5]解释:动态和计算过程为 [1, .原创 2022-03-13 13:57:30 · 80 阅读 · 0 评论 -
2022-03-13 数组-简单-《汇总区间》
标签:数组、数学、动态规划题目描述给定一个 无重复元素 的有序 整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:"a->b" ,如果 a != b"a" ,如果 a == b示例 1:输入:nums = [0,1,2,4,5,7]输出:["0->2","4-...原创 2022-03-13 13:47:40 · 90 阅读 · 0 评论 -
2022-03-02 数组-简单-《存在重复元素2》
标签:数组、哈希表、滑动窗口题目链接:力扣题目描述:给你一个整数数组nums 和一个整数k ,判断数组中是否存在两个 不同的索引i和j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。示例1:输入:nums = [1,2,3,1], k = 3输出:true示例 2:输入:nums = [1,0,1,1], k = 1输出:true示例 3:输入:nums = [...原创 2022-03-02 08:44:10 · 150 阅读 · 0 评论 -
2022-03-01 数组-简单-《217.存在重复元素》
标签:数组、哈希表、排序题目描述给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。示例 1:输入:nums = [1,2,3,1]输出:true示例 2:输入:nums = [1,2,3,4]输出:false示例3:输入:nums = [1,1,1,3,3,4,3,2,4,2]输出:true提示:1 <= nums.length <= 105-109 <= nu...原创 2022-03-01 08:59:37 · 142 阅读 · 0 评论 -
2022-02-28 数组-简单-《136只出现一次的数字》
标签:位运算、数组题目:力扣https://leetcode-cn.com/problems/single-number/题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4解题思路方法1:两层for循环,第一层为参照组,第二层为对比组,找出只出现.原创 2022-02-28 08:47:38 · 58 阅读 · 0 评论 -
2022-02-26数组-简单-《88合并两个有序数组》
标签:数组、双指针、排序题目描述给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例原创 2022-02-26 09:26:06 · 65 阅读 · 0 评论 -
2022-02-25数组-简单-《53. 最大子数组和》
标签:数组、分治、动态规划题目描述:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23提示:1 <= nums....原创 2022-02-26 08:33:34 · 175 阅读 · 0 评论 -
2021-10-30数组-简单-《976. 三角形的最大周长》
标签:数组、数学、贪心、排序题目描述给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。如果不能形成任何面积不为零的三角形,返回 0。示例 1:输入:nums = [2,1,2]输出:5示例 2:输入:nums = [1,2,1]输出:0提示:3 <= nums.length <= 1041 <= nums[i] <= 106思路介绍:1 判断三边是否能构成三角形:任意两边之和>原创 2022-02-20 16:51:12 · 297 阅读 · 0 评论 -
2021-10-30数组-简单-《加一》
题目描述给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。输入:digits = [0]输出:[1]提示:1 <= digits.原创 2021-10-30 23:22:20 · 172 阅读 · 1 评论 -
2021-05-26数组-中等-《顺时针旋转矩阵》
题目描述有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。示例1输入[[1,2,3],[4,5,6],[7,8,9]],3 返回值[[7,4,1],[8,5,2],[9,6,3]思路:找出旋转后的坐标和原来坐标的规律import java.util.*;public class Solution { public int[][] rotateMatrix(原创 2021-05-26 15:58:42 · 121 阅读 · 0 评论 -
2021-05-25数组-中等-《矩阵的最小路径和》
题目描述给定一个n * m的矩阵a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。示例1输入[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]返回值12备注:1≤n,m≤20001≤arri,j≤100思路:动态规划题目,先把边界值求出来,知道原子性的答案,再往上去求值。import java.util.*;public class ...原创 2021-05-25 22:27:09 · 86 阅读 · 0 评论 -
2021-05-22数组-中等-《最长无重复子数组》
题目描述// 给定一个数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。// 子数组是连续的,比如[1,2,3,4,5]的子数组有[1,2],[2,3,4]等等,但是[1,3,4]不是子数组示例1输入[2,3,4,5]返回值4说明[2,3,4,5]是最长子数组 示例2输入[2,2,3,4,3]返回值3说明[2,3,4]是最长子数组 示例3输入[9]返回值1示例4输原创 2021-05-22 22:14:30 · 127 阅读 · 2 评论 -
2021-05-12数组-简单-《合并两个有序的数组》
题目描述给出两个有序的整数数组 A和B ,请将数组B合并到数组A中,变成一个有序的数组注意:可以假设A 数组有足够的空间存放B 数组的元素, A和 B中初始的元素数目分别为m 和 n考察点:数组 双指针 归并排序学习点:1.双指针:快慢指针、2.归并排序:图解排序算法(四)之归并排序题解public class Solution { public void merge(int A[], int m, int B[], int n) { ..原创 2021-05-12 22:31:03 · 97 阅读 · 0 评论 -
2021-04-29数组-简单-《数字在升序数组中出现的次数》
题目描述统计一个数字在升序数组中出现的次数。示例1输入[1,2,3,3,3,3,4,5],3返回值4考察点:数组;二分解法1:暴力。如果这个数字出现了,count就加1.public class Solution { public int GetNumberOfK(int [] array , int k) { int len = array.length; if(len <= 0){ return 0原创 2021-04-30 16:07:55 · 122 阅读 · 0 评论 -
2021-04-20数组-中等-《调整数组顺序使奇数位于偶数前面》
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。示例1输入[1,2,3,4]返回值[1,3,2,4]解法:...原创 2021-04-26 14:56:03 · 54 阅读 · 0 评论 -
2021-04-14 数组-简单-《数组中出现次数超过一半的数字》
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。示例1输入[1,2,3,2,2,2,5,4,2]返回值2考察点:哈希;数组解法1:HashMap。遍历数组,将数值及出现次数put到HashMap中:键为数值、值为次数;遍历HashMap键值对,如果值大于长度的一半,即输出对应的键。import ja原创 2021-04-20 15:37:54 · 129 阅读 · 1 评论 -
2021-04-12数组-简单-《缺失数字》
题目描述从0,1,2,...,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小。示例1输入[0,1,2,3,4,5,7]返回值6示例2输入[0,2,3]返回值1考察点:位运算 数组 数学 二分 解法1 :暴力,因为数组有序,且相隔1,所以差不为1的就是缺失数字;如果a[0]不为0,则缺失数字为0;否则,缺失数字为最后的数值+1import java.util.*;public class Solution {原创 2021-04-12 22:30:58 · 153 阅读 · 0 评论 -
python刷题经验
一 经验1.遇到两个及以上相同逻辑的需要时,考虑写成函数,并引用。二 知识1.while if 满足条件且一直执行; 满足条件,只执行这一次。 2....原创 2020-05-06 23:55:46 · 173 阅读 · 0 评论