刷题
free慢
莫等闲 白了少年头
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[leetcode 274][H指数]
leetcode H指数原创 2024-03-19 09:27:29 · 335 阅读 · 0 评论 -
[leetcode 55][跳跃游戏]
leetcode 55 跳跃游戏原创 2024-03-12 11:15:22 · 357 阅读 · 0 评论 -
[leetcode 45][跳跃游戏||]
leetcode45 跳跃游戏原创 2024-03-12 11:11:58 · 405 阅读 · 0 评论 -
[leetcode 189][轮转数组]
输入: nums = [1,2,3,4,5,6,7], k = 3。输入:nums = [-1,-100,3,99], k = 2。向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]输出: [5,6,7,1,2,3,4]输出:[3,99,-1,-100]原创 2024-03-08 16:42:36 · 284 阅读 · 0 评论 -
[leetcode 26][删除有序数组的重复项]
解释:函数应返回新长度 length = 7, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。不需要考虑数组中超出新长度后面的元素。解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。输入:nums = [0,0,1,1,1,1,2,3,3]输出:7, nums = [0,0,1,1,2,3,3]输出:5, nums = [1,1,2,2,3]输入:nums = [1,1,1,2,2,3]原创 2024-03-07 16:54:14 · 290 阅读 · 1 评论 -
[leetcode 169][多数元素]
如果新来到的士兵不是同一阵营,则前方阵营派一个士兵和它同归于尽。如果新来的士兵和前一个士兵是同一阵营,则集合起来占领高地,领主不变,winner 依然是当前这个士兵所属阵营,现存兵力 count++;当下一个士兵到来,发现前方阵营已经没有兵力,新士兵就成了领主,winner 变成这个士兵所属阵营的旗帜,现存兵力 count ++。第一个到来的士兵,直接插上自己阵营的旗帜占领这块高地,此时领主 winner 就是这个阵营的人,现存兵力 count = 1。输入:nums = [2,2,1,1,1,2,2]原创 2024-03-07 15:50:32 · 367 阅读 · 0 评论 -
[leetcode 88][合并有序数组]
leetcode88 合并有序数组原创 2024-03-07 09:28:20 · 266 阅读 · 0 评论 -
[leetcode 128][最长连续序列]
[leetcode 128][最长连续序列]给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9class Solution { public int longestConsecutive(int[] nums原创 2021-10-26 16:26:52 · 168 阅读 · 0 评论 -
[leetcode 130][被围绕的区域]
[leetcode 105][被围绕的区域]给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充示例 1:输入:board = [[“X”,“X”,“X”,“X”],[“X”,“O”,“O”,“X”],[“X”,“X”,“O”,“X”],[“X”,“O”,“X”,“X”]]输出:[[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[原创 2021-10-26 16:24:09 · 2974 阅读 · 0 评论 -
[leetcode 105][[从前序与中序遍历序列构造二叉树]
[leetcode 105][[从前序与中序遍历序列构造二叉树]给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例 2:Input: preorder = [-1], inorder = [-1]Output: [-1]class Solution {原创 2021-10-25 16:57:45 · 117 阅读 · 0 评论 -
[leetcode 116][填充每个节点的下一个右侧节点指针]
[leetcode 116][填充每个节点的下一个右侧节点指针]给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。输入:root = [1,2,3,4,5,6,7]输出:[1,#,2,3,#,4,5,6,7,#]解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 n原创 2021-10-25 16:53:55 · 106 阅读 · 0 评论 -
[leetcode 78][子集]
[leetcode 78][子集]给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]class Solution { public List<List<Integer>> subsets(int[] nums) {原创 2021-10-20 17:35:38 · 97 阅读 · 0 评论 -
[leetcode 79][单词搜索]
[leetcode 79][单词搜索]给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]], word = “ABCCED”原创 2021-10-20 17:20:39 · 101 阅读 · 0 评论 -
[leetcode 49][字母异位词分组]
[leetcode 49][字母异位词分组]给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次。示例 1:输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]示例 2:输入: strs = [""]输出: [[""]]cl原创 2021-10-11 19:24:31 · 107 阅读 · 0 评论 -
[leetcode 43][字符串相乘]
字符串相乘给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”class Solution { public String multiply(String num1, String num2) { if (num1.eq原创 2021-09-24 17:54:59 · 94 阅读 · 0 评论 -
[leetcode 45][跳跃游戏2]
跳跃游戏2给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。示例 1:输入: nums = [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。示例 2:输入: nums = [2,3,0,1,4]输出: 2cla原创 2021-09-24 17:52:52 · 102 阅读 · 0 评论 -
[leetcode 39][组合总和]
组合总和给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。对于给定的输入,保证和为 target 的唯一组合数少于 150 个。示例 1:输入: candidates = [2,3,6,7], target = 7输出: [[7],[2,2,3]]示例 2:输入: can原创 2021-09-23 17:52:41 · 111 阅读 · 0 评论 -
[leetcode 46][全排列]
全排列给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入: candidates = [2,3,6,7], target = 7输出: [[7],[2,2,3]]示例 2:输入: candidates = [2,3,5], target = 8输出: [[2,2,2,2],[2,3,3],[3,5]]class Solution { public List<List<Integer>> pe原创 2021-09-23 17:50:29 · 91 阅读 · 0 评论 -
[leetcode 36][有效的数独]
有效的数独请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:board =[[“5”,“3”,".",".",“7”,".",".",".","."],[“6”,".",".",“1”,“9”,“5”,".",".","."原创 2021-09-18 11:55:53 · 107 阅读 · 0 评论 -
[leetcode 17][电话号码的字母组合]
电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]class Solution { public List<String> letterCombi原创 2021-07-28 16:05:47 · 334 阅读 · 0 评论 -
[leetcode 15][三数之和]
三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]class Solution { public List<List<Integer>> th原创 2021-07-28 16:03:13 · 128 阅读 · 0 评论 -
[leetcode 11][盛最多水的容器]
盛最多水的容器给你 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-07-27 17:22:14 · 249 阅读 · 0 评论 -
[leetcode 03][无重复字符的最长字符]
无重复字符的最长字符给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。class Solution { public int lengthOfLongestSubstring(String s) { if原创 2021-07-20 20:12:23 · 92 阅读 · 0 评论 -
[leetcode 110][平衡二叉树]
平衡二叉树本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:falseclass Solution { public boolean isBalanced(TreeNode root) { return judgeBlance(root)原创 2021-06-30 20:35:59 · 102 阅读 · 0 评论 -
[leetcode 111][二叉树最小深度]
二叉树最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5class Solution { public int minDepth(TreeNode root) { if (root == nul原创 2021-06-30 20:33:55 · 99 阅读 · 0 评论 -
[二叉树的前序、中序、后序遍历(递归与非递归)]
二叉树的前序、中序、后序遍历(递归与非递归)递归前序static class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> list = new ArrayList<>(); preTraverse(root, list); return list;原创 2021-06-29 11:50:51 · 119 阅读 · 0 评论 -
[leetcode 53][最大子序和]
最大子序和:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。class Solution { public int maxSubArray(int[] nums) { int[] dp = new int[nums.length]; dp[0] = nums[0];原创 2021-06-25 16:35:05 · 95 阅读 · 0 评论 -
[leetcode 20][有效的括号]
有效的括号:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:trueclass Solution { public boolean isValid(String s) { Stack<Character> stack =原创 2021-06-25 11:49:11 · 97 阅读 · 0 评论 -
[leetcode 21][合并两个有序链表]
合并两个有序链表:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == null &&am原创 2021-06-25 11:43:23 · 82 阅读 · 0 评论 -
[leetcode 26][删除有序数组的重复项]
删除有序数组的重复项给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。class Solution { public int removeDuplicates(int[] nums) { int length = nums.length; // 使用快慢指针 for (int i = 1; i < length ; i++) { if (nums[i] ==原创 2021-06-25 11:37:01 · 93 阅读 · 0 评论 -
用两个栈来实现一个队列(java)
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node)原创 2021-03-30 21:52:04 · 164 阅读 · 0 评论 -
寻找第k大(java)
题目描述有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。输入[1,3,5,2,2],5,3输出2import java.awt.*;public class Solution { public static void main(String[] args) { int[] a = {1332802,1177178,1514891,871248,原创 2021-03-29 21:27:33 · 310 阅读 · 0 评论 -
采购单(java京东2017秋招真题)
题目描述过年啦!小B高兴的不行了,她收到了很多红包,可以实现好多的愿望呢。小B可是对商店货架上心仪的货物红眼好久了,只因囊中羞涩作罢,这次她可是要大大的shopping一番。小B想去购物时,总是习惯性的把要买的东西列在一个购买清单上,每个物品单独列一行(即便要买多个某种物品),这次也不例外。小B早早的来到了商店,由于她太激动,以至于她到达商店的时候,服务员还没有把各个商品的价签排好,所有的价签还都在柜台上。因此还需要一段时间,等服务器把价签放到对应的商品处,小B才能弄清她的购买清单所需的费用。小B都有原创 2021-03-29 20:44:16 · 150 阅读 · 0 评论 -
快速排序(java)
public void quickSort(int[] arr,int low,int high){ if(low<high){ int index = getIndex(arr,low,high); quickSort(arr,low,index-1); quickSort(arr,index+1,high); } } public int getIndex(int arr[],.原创 2021-03-22 20:37:00 · 86 阅读 · 0 评论 -
输入一个链表,反转链表后,输出新链表的表头
题目描述输入一个链表,反转链表后,输出新链表的表头。**输入:**{1,2,3}**输出:**{3,2,1}代码:public class Solution { public ListNode ReverseList(ListNode head) { if(head==null || head.next==null){ return head; } ListNode cur = head; Li原创 2021-03-22 20:02:59 · 211 阅读 · 0 评论 -
最长公共子串(动态规划)
题目描述给定两个字符串str1和str2,输出两个字符串的最长公共子串题目保证str1和str2的最长公共子串存在且唯一。示例1输入:"1AB2345CD","12345EF"输出:"2345"代码public static String LCS (String str1, String str2) { // write code here char[] arr1 = str1.toCharArray(); char[] arr2 = s原创 2021-03-15 20:36:03 · 180 阅读 · 0 评论 -
子数组最大累加和问题(动态规划)
题目描述给定一个数组arr,返回子数组的最大累加和例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.题目保证没有全为负数的数据[要求]时间复杂度为O(n),空间复杂度为O(1)示例输入:[1, -2, 3, 5, -2, 6, -1]返回:12代码 public int maxsumofSubarray (int[] arr) { // write code here原创 2021-03-15 20:33:36 · 363 阅读 · 0 评论 -
估值一亿的AI核心代码 (java)
以上图片来自新浪微博。本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是:无论用户说什么,首先把对方说的话在一行中原样打印出来;消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉;把原文中所有大写英文字母变成小写,除了 I;把原文中所有独立的 can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格或标点符号分隔开的单词;把原文中所有独立的 I 和 me 换成 you;把原文中.原创 2021-03-10 22:43:49 · 374 阅读 · 0 评论
分享