- 博客(13)
- 收藏
- 关注
原创 200. 岛屿数量
200. 岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。解题思路: 通过对网格进行深度优先搜索,对一个网格从四个方向进行深度优先搜索,等满足几个特定条件是退出。计算进行的深度优先搜索次数即为岛屿的个数。class Solution { public int numIslands(char[][] grid) {
2021-03-16 21:17:16 159
原创 59. 螺旋矩阵 II
59. 螺旋矩阵 II给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。class Solution { public int[][] generateMatrix(int n) { int[][] ans = new int[n][n]; int left = 0; int right = n - 1; int top = 0; i
2021-03-16 19:34:52 111
原创 54. 螺旋矩阵
54. 螺旋矩阵给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素class Solution { public List<Integer> spiralOrder(int[][] matrix) { int m = matrix.length; int n = matrix[0].length; List<Integer> res = new ArrayList<Int
2021-03-15 20:44:42 149
原创 103. 二叉树的锯齿形层序遍历
103. 二叉树的锯齿形层序遍历给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<List<Integer>&
2021-03-09 21:01:44 111
原创 173. 二叉搜索树迭代器
173. 二叉搜索树迭代器实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。暴力法求解class BSTIterator { List<Integer> res; public BSTIterator(TreeNode root) { res = new ArrayList<Integer>(); preorder(res,root); }
2021-03-08 21:48:55 89
原创 46. 全排列
46. 全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]回溯法(java)class Solution { public List<List<Integer>> permute(int[] nums) { List<List<Integer>&g
2021-03-07 18:53:10 133
原创 300. 最长递增子序列
300. 最长递增子序列给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [
2021-03-07 13:31:21 118
原创 232. 用栈实现队列
232. 用栈实现队列题目描述:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false示例:输入:["MyQueue", "push", "push", "peek", "po
2021-03-05 19:31:55 110
原创 354. 俄罗斯套娃信封问题
300. 最长递增子序列**题目描述:**给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [10,9,2,5,3,7,101,18]输出:4解
2021-03-04 21:26:51 140 1
原创 338. 比特位计数
338. 比特位计数题目描述: 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]法一:class Solution { public int[] countBits(int num) { int cnt [] = new int[num+1]; for( int i =
2021-03-03 20:31:19 125 1
原创 7. 整数反转
7. 整数反转**题目描述: **给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21class Solution { public int reverse(int x) {
2021-03-02 20:22:43 89
原创 1748. 唯一元素的和
1748. 唯一元素的和题目描述: 给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。请你返回 nums 中唯一元素的和 。示例 1:输入:nums = [1,2,3,2]输出:4解释:唯一元素为 [1,3] ,和为 4 。示例 2: 输入:nums = [1,1,1,1,1]输出:0解释:没有唯一元素,和为 0 。提示:1 <= nums.length <= 1001 <= nums[i] <= 100class Solution
2021-03-02 20:18:57 165
原创 304. 二维区域和检索 - 矩阵不可变
304. 二维区域和检索 - 矩阵不可变(java求解)题目描述: 给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。示例:给定 matrix = [[3, 0, 1, 4, 2],[5, 6, 3, 2, 1],[1, 2, 0, 1, 5],[4, 1, 0, 1, 7],[1, 0, 3, 0, 5]]sumRegion(2, 1, 4, 3) -> 8sumRegion(1, 1, 2,
2021-03-02 17:48:30 113
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人