LeetCode 精选 TOP 面试题
龙小虬
很懒。
展开
-
java算法训练------ LeetCode 精选 TOP 面试题------寻找重复数、逆波兰表达式求值
寻找重复数给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。示例 1:输入:nums = [1,3,4,2,2]输出:2示例 2:输入:nums = [3,1,3,4,2]输出:3示例 3:输入:nums = [1,1]输出:1示例 4:输入:nums = [1,1,2]输出:1提示:2 <= n <= 3 * 10原创 2021-04-26 14:18:03 · 104 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------电话号码的字母组合、解码方法
电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b","c"]提示:0 <= digits.l原创 2021-04-26 14:12:06 · 203 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------括号生成、在排序数组中查找元素的第一个和最后一个位置
括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8思路:利用回溯方法,这很类似与全排列,但是他的右括号需要根据左括号来判断,这是一个最重要的点。代码:ArrayList list;StringBuilder string原创 2021-04-25 00:20:45 · 152 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------二叉树的层序遍历、二叉树的中序遍历
二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层序遍历结果:[ [3], [9,20], [15,7]]思路:我们可以看到他的树结构,遍历的结果是第一层、第二层…这也让我们知道了,将会遍历根节点,然后就是左节点、右节点。代码:List<List<Integ原创 2021-04-25 00:13:35 · 93 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------最大数、合并区间
最大数给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:"210"示例 2:输入:nums = [3,30,34,5,9]输出:"9534330"示例 3:输入:nums = [1]输出:"1"示例 4:输入:nums = [10]输出:"10"提示:1 <= nums.length <= 1000 <原创 2021-04-22 01:00:39 · 180 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------打乱数组、被围绕的区域
打乱数组给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。实现 Solution class:Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset() 重设数组到它的初始状态并返回int[] shuffle() 返回数组随机打乱后的结果示例:输入["Solution", "shuffle", "reset", "shuffle"][[[1, 2, 3]], [], [], []]输出[null, [3, 1, 2],原创 2021-04-21 17:05:00 · 75 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------搜索二维矩阵 II、矩阵置零
搜索二维矩阵 II编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例 1:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true示例 2:输入:matrix = [[1,4,7,11,15],原创 2021-04-21 16:56:12 · 135 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------Pow(x, n)、删除链表的倒数第 N 个结点
Pow(x, n)实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25提示:-100.0 < x < 100.0-2^31 <= n <= 2^31-1-104 <原创 2021-04-21 16:40:45 · 131 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------两整数之和、颜色分类
两整数之和不使用运算符 + 和 - ,计算两整数 a 、b 之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1思路:既然不能使用+、-,我们知道位运算、与运算、异或运算可以进行简单的乘除,那么肯定就可以写出+、-,并且效率比使用+、-更加快。直接使用位运算计算即可代码:public int getSum(int a, int b) { while(b != 0){原创 2021-04-21 00:10:23 · 64 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------前 K 个高频元素、有效的数独
前 K 个高频元素给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:1 <= nums.length <= 105k 的取值范围是 [1, 数组中不相同的元素的个数]题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的思路:原创 2021-04-20 18:57:34 · 367 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------验证二叉搜索树、摆动排序 II
验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为原创 2021-04-16 12:45:50 · 76 阅读 · 0 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------旋转图像、旋转数组
旋转图像给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13原创 2021-04-16 00:07:02 · 140 阅读 · 1 评论 -
java算法训练------ LeetCode 精选 TOP 面试题------单词搜索、单词拆分
单词搜索给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"输出:true示例原创 2021-04-15 14:55:00 · 124 阅读 · 0 评论