题目
袁小黑
这个作者很懒,什么都没留下…
展开
-
LeetCode 1305. 两棵二叉搜索树中的所有元素
标签:排序,二叉搜索树给你 root1 和 root2 这两棵二叉搜索树。请你返回一个列表,其中包含 两棵树 中的所有整数并按升序 排序。示例 1:输入:root1 = [2,1,4], root2 = [1,0,3]输出:[0,1,1,2,3,4]示例 2:输入:root1 = [0,-10,10], root2 = [5,1,7,0,2]输出:[-...原创 2020-01-28 21:44:48 · 333 阅读 · 0 评论 -
LeetCode --- ListNode 工具加强
增加两个链表的方法,一个可以根据数组构造对象,一个可以比较两个链表。public class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; } ListNode(int[] nums) { ListN...原创 2018-05-22 21:14:25 · 1423 阅读 · 2 评论 -
LeetCode ---- 合并两个有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0]...原创 2018-05-16 13:50:28 · 1019 阅读 · 0 评论 -
LeetCode --- 帕斯卡三角形
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]public List<List<Integer>> genera...原创 2018-05-16 11:47:31 · 423 阅读 · 0 评论 -
LeetCode ---- Shuffle an Array
打乱一个没有重复元素的数组。示例: // 以数字集合 1, 2 和 3 初始化数组。 int[] nums = {1,2,3}; Solution solution = new Solution(nums); // 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。 solution.shuffle(); // 重设数...原创 2018-05-16 11:07:10 · 150 阅读 · 0 评论 -
LeetCode ---- 递增的三元子序列
给定一个未排序的数组,请判断这个数组中是否存在长度为3的递增的子序列。正式的数学表达如下:如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1, 使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。 要求算法时间复杂度为O(n),空间复杂度为O(1) 。示例: 输入 [1, 2...原创 2018-05-22 14:37:36 · 821 阅读 · 0 评论 -
LeetCode --- 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStac...原创 2018-05-15 17:08:45 · 320 阅读 · 0 评论 -
LeetCode -- 宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此”a”和”A”是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb” 输出: 3 示例 2:输入: J = “z”, S = “ZZ...原创 2018-05-08 14:44:31 · 513 阅读 · 0 评论 -
LeetCode --- 只出现一次的数字 III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。示例 :输入: [1,2,1,3,2,5] 输出: [3,5] 注意:结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。 你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?class Solution { public...原创 2018-05-14 13:10:46 · 683 阅读 · 0 评论 -
LeetCode --- 缺失数字
给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1] 输出: 2 示例 2:输入: [9,6,4,2,3,5,7,0,1] 输出: 8 说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?import java.util.OptionalInt;import ...原创 2018-05-14 11:31:39 · 538 阅读 · 0 评论 -
LeetCode --- 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树。一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 public class IsValidBST { @Test public void isValidBSTTest1() { TreeNode...原创 2018-05-14 11:03:23 · 369 阅读 · 0 评论 -
LeetCode --- 二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。public class MaxDepth { @Test public void maxDepthTest() { ...原创 2018-05-14 10:23:18 · 662 阅读 · 0 评论 -
LeetCode --- 3的幂
给出一个整数,写一个函数来确定这个数是不是3的一个幂。后续挑战: 你能不使用循环或者递归完成本题吗? 3的幂的特点:如果一个整数N是3的幂,那么其所有约数都是3的幂。那么,换一个角度,如果n小于N且是N的约数,那么其一定是3的幂;class Solution { public boolean isPowerOfThree(int n) { if (n...原创 2018-05-14 09:43:33 · 454 阅读 · 0 评论 -
LeetCode ---- 二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如: 给定二叉树: [3,9,20,null,null,15,7],3 / \ 9 20 / \ 15 7 返回其层次遍历结果:[ [3], [9,20], [15,7] ]public class LevelOrder { ...原创 2018-05-16 14:42:45 · 393 阅读 · 0 评论 -
LeetCode ---- 将有序数组转换为二叉搜索树
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5pu...原创 2018-05-16 15:59:17 · 1776 阅读 · 0 评论 -
平方数之和
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5示例2:输入: 3输出: False解题思路:这个解题思路可以参考:两数之和 II - 输入有序数组 题目的解法:时间复杂度为o(根号n)空间复杂度为o(1)代码如下:public class Ju...原创 2019-07-15 23:16:51 · 793 阅读 · 0 评论 -
两数之和 II - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], ta...原创 2019-07-15 22:42:59 · 140 阅读 · 0 评论 -
LeetCode ---- 逆波兰表达式求值
根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 输入: [“2”, “1”, “+”, “3”, “*”] 输出: 9 解释: ((2 + 1) * 3...原创 2018-06-16 22:31:02 · 692 阅读 · 0 评论 -
LeetCode ----- Plus One
Given a non-empty array of digits representing a non-negative integer, plus one to the integer.The digits are stored such that the most significant digit is at the head of the list, and each element...原创 2018-06-22 17:11:54 · 115 阅读 · 0 评论 -
LeetCode --- 3Sum
Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:The solution set must not cont...原创 2018-06-05 09:14:27 · 161 阅读 · 0 评论 -
LeetCode --- Two Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same ...原创 2018-06-04 15:03:53 · 109 阅读 · 0 评论 -
LeetCode --- 阶乘后的零
给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零。 示例 2:输入: 5 输出: 1 解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。出现0的情况有: 1,偶数乘以5。 2,偶数处于5的倍数。public class TrailingZe...原创 2018-05-23 16:10:19 · 682 阅读 · 0 评论 -
LeetCode --- Excel表列序号
给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1: 输入: “A” 输出: 1示例 2: 输入: “AB” 输出: 28示例 3: 输入: “ZY” 输出: 701...原创 2018-05-23 15:37:48 · 423 阅读 · 0 评论 -
LeetCode --- 求众数
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3] 输出: 3示例 2:输入: [2,2,1,1,1,2,2] 输出: 2public class MajorityElement { @Test public void...原创 2018-05-23 14:04:03 · 308 阅读 · 0 评论 -
LeetCode --- 寻找峰值
峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1] 输出: 2 解释: 3 是峰值元素,你的函数应该返回其索引 ...原创 2018-05-23 13:03:34 · 2096 阅读 · 0 评论 -
LeetCode ---- 相交链表
编写一个程序,找到两个单链表相交的起始节点。例如,下面的两个链表: 在节点 c1 开始相交。注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。public class GetIntersectionNode { ...原创 2018-05-23 11:39:46 · 581 阅读 · 0 评论 -
LeetCode --- 爬楼梯
假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 步 + 1 步 2. 2 步示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 ...原创 2018-05-16 16:19:05 · 170 阅读 · 0 评论 -
LeetCode --- 检测大写字母
给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如”USA”。 单词中所有字母都不是大写,比如”leetcode”。 如果单词不只含有一个字母,只有首字母大写, 比如 “Google”。 否则,我们定义这个单词没有正确使用大写字母。示例 1: 输入: “USA” 输出: True示例 2: 输入: “F...原创 2018-05-14 09:23:07 · 571 阅读 · 0 评论 -
LeetCode ---- 二叉树剪枝
给定二叉树根结点 root ,此外树的每个结点的值要么是 0,要么是 1。返回移除了所有不包含 1 的子树的原二叉树。( 节点 X 的子树为 X 本身,以及所有 X 的后代。)示例1: 输入: [1,null,0,0,1] 输出: [1,null,0,null,1] 解释: 只有红色节点满足条件“所有不包含 1 的子树”。 右图为返回的答案。...原创 2018-05-10 13:40:08 · 735 阅读 · 0 评论 -
Java面试一
基础一知识点一集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet)。 ArrayList : 列表,可以说是动态数组;有序的,可以重复的;非线程安全。 LinkedList : 双向列表,可以根据下个节点访问上一个节点;有序的,可以重复的;线程安全。 Vector : 有序的,可以重复的;线程安全...原创 2018-05-02 22:16:12 · 119 阅读 · 0 评论 -
LeetCode ----- 位1的个数
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 : 输入: 11 输出: 3 解释: 整数 11 的二进制表示为 00000000000000000000000000001011示例 2: 输入: 128 输出: 1 解释: 整数 128 的二进制表示为 0000000000000000...原创 2018-05-09 14:39:35 · 800 阅读 · 0 评论 -
LeetCode ---- Bit位计数
给定一个非负整数 num。 对于范围 0 ≤ i ≤ num 中的每个数字 i ,计算其二进制数中的1的数目并将它们作为数组返回。示例: 比如给定 num = 5 ,应该返回 [0,1,1,2,1,2].进阶:给出时间复杂度为O(n * sizeof(integer)) 的解答非常容易。 但是你可以在线性时间O(n)内用一次遍历做到吗? 要求算法的空间复杂度为O(n)。 你能进一...原创 2018-05-09 14:34:13 · 419 阅读 · 0 评论 -
LeetCode --- 判断路线成圈
初始位置 (0, 0) 处有一个机器人。给出它的一系列动作,判断这个机器人的移动路线是否形成一个圆圈,换言之就是判断它是否会移回到原来的位置。移动顺序由一个字符串表示。每一个动作都是由一个字符来表示的。机器人有效的动作有 R(右),L(左),U(上)和 D(下)。输出应为 true 或 false,表示机器人移动路线是否成圈。示例 1: 输入: “UD” 输出: true...原创 2018-05-09 14:15:53 · 287 阅读 · 0 评论 -
LeetCode ----- 汉明距离
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意: 0 ≤ x, y < 231.示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) &nbs...原创 2018-05-09 13:58:18 · 303 阅读 · 0 评论 -
LeetCode --- 最大二叉树
给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构建最大二叉树,并且输出这个树的根节点。 Example 1: 输入: [3,2,1,6,0,5] 输出: 返回下面这棵树的根节点: 6...原创 2018-05-09 12:48:50 · 410 阅读 · 0 评论 -
LeetCode -- 保持城市天际线
原创 2018-05-09 11:03:09 · 761 阅读 · 1 评论 -
Leetcode -- 65. 有效数字
验证给定的字符串是否为数字。例如: “0” => true ” 0.1 ” => true “abc” => false “1 a” => false “2e10” => true说明: 我们有意将问题陈述地比较模糊。在实现代码之前,你应当事先思考所有可能的情况。其实这题不难,主要是上面的说明比较坑。。。class Solution(ob...原创 2018-04-30 14:16:31 · 400 阅读 · 0 评论 -
虚函数vitural
1)没有使用vitual#include using namespace std;class Base{public: Base() { cout << "Base::Base()" << endl; } ~Base() { cout << "Base::~Base()" << endl; }};class Sub : public Base{pu原创 2013-10-28 23:05:30 · 827 阅读 · 0 评论 -
求职笔试题集合
1、用 C 语言写一个函数交换两整数的值,不借助第三个变量方法一:a = a + b; b = a - b; a = a - b; 不过提出了最大的问题,就是两个正数的溢出问题。方法二:a = a - b; b = a + b; a = b - a; 还是存在溢出的情况:一正数与一负数。原创 2013-09-23 13:57:17 · 636 阅读 · 0 评论 -
LeetCode -- 唯一摩尔斯密码词
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-“, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下: [“.-“,”-…”,”-.-.”,”-..”,”.”,”..-.”,”–.”,”….”,”..”,”.—”,”-.-“,”.-..”,”–”,”-.”...原创 2018-05-10 14:12:08 · 1277 阅读 · 0 评论