- 博客(10)
- 资源 (9)
- 收藏
- 关注
原创 LeetCode 213. 打家劫舍 II【c++/java详细题解】
目录1、题目2、思路3、c++代码4、java代码1、题目你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。示例 1:输入:nums = [2,3,2]输出:3解释:你不能先偷窃 1 号房屋(金额 =
2021-09-21 10:16:04 45514 13
原创 LeetCode 61. 旋转链表 【c++/java详细题解】
目录1、题目2、思路3、c++代码4、java代码1、题目给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例 2:输入:head = [0,1,2], k = 4输出:[2,0,1]提示:链表中节点的数目在范围 [0, 500] 内-100 <= Node.val <= 1000 <= k <= 2 * 1092、思路
2021-09-17 15:16:08 3478 15
原创 LeetCode 152. 乘积最大子数组【c++/java详细题解】
目录1、题目2、思路:3、c++代码4、java代码1、题目给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。2、思路:(动态规划) O(n)O(n)O(n)给你一个整数数组 nums ,让我们找出数组中乘积
2021-09-13 08:57:16 3541 26
原创 LeetCode 59. 螺旋矩阵 II【c++/java详细题解】
1、题目给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]提示:1 <= n <= 202、思路(模拟) O(n2)O(n^2)O(n2)给定一个正整数n,让我们生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵
2021-09-11 15:39:00 2650 34
原创 LeetCode 209. 长度最小的子数组【c++/java详细题解】
目录1、题目2、思路1、题目给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, nums = [1,
2021-09-09 16:00:24 2415 26
原创 LeetCode 145. 二叉树的后序遍历【c++/java详细题解】
目录1、题目2、思路13、c++代码4、java代码5、思路26、c++代码7、java代码1、题目给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?2、思路1(递归) O(n)O(n)O(n)给定一个二叉树,返回它的 后序 遍历。样例:如样例所示,该二叉树的后序遍历为res = [9,5,7,4,3],下面来讲解递归的
2021-09-08 09:16:02 2056 20
原创 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面【c++/java详细题解】
目录1、题目2、思路3、c++代码4、java代码1、题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。提示:0 <= nums.length <= 500001 <= nums[i] <= 100002、思路(双指针) O(n)O(n)O(n)给定一个nums数组,要求
2021-09-07 18:25:26 910 14
原创 LeetCode 695. 岛屿的最大面积【c++/java详细题解】
目录1、题目2、思路3、c++代码4、java代码1、题目给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0
2021-09-03 14:20:46 3005 52
原创 LeetCode 283. 移动零【c++/java详细题解】
目录1、题目2、思路3、c++代码4、java代码1、题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。2、思路(双指针) O(n)O(n)O(n)给定一个数组 nums,要求我们将所有的 0 移动到数组的末尾,同时保持非零元素的相对顺序。样例:如样例所示,数组nums = [0,1,0,3,
2021-09-02 11:14:14 1459 30
原创 LeetCode 179. 最大数【c++/java详细题解】
目录1、题目2、思路3、c++代码4、java代码1、题目给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:"210"示例 2:输入:nums = [3,30,34,5,9]输出:"9534330"示例 3:输入:nums = [1]输出:"1"示例 4:输入:nums = [10]输出:"10"2、思路(贪心)
2021-09-01 10:58:49 2855 36
350道Java面试题手册+Java基础面试题.rar
2021-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人