随笔分类 - LeetCode
菜鸟重0开始
摘要:给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。 //利用栈,遍历字符串,非退格符 # 就压栈,否则弹出栈顶元素,最后比较两字符串剩下的是否相同 class Solution { p
阅读全文
摘要:给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode ri
阅读全文
摘要:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 /** * Definition for singly-linked li
阅读全文
摘要:给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅
阅读全文
摘要:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] 示例 1: 输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8 输出: 6 解
阅读全文
摘要:给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树 例如: 给定 BST [1,null,2,2], 1 \
阅读全文
摘要:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */
阅读全文
摘要:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合 第一次做回溯+剪枝 参考题解:liweiwei1419 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] class Soluti
阅读全文
摘要:给定一个二叉树,返回其节点值自底向上/自上向下的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 参考题解:负雪明烛 //BFS //自顶向下 class Solution { public List<List<Integer>> levelOrderBottom(TreeNo
阅读全文
摘要:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、"5e2"、"-123"、"3.1416"、"-1E-16"、"0123"都表示数值,但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。 看题解有一挺有意思的解答,就是开销有点大
阅读全文
摘要:给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,…… 。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。 给定一个表示分数的数组,预测玩家1是
阅读全文
摘要:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 class Solution { public String reverseWords(String s) { String[] strs = s.split(" "); StringBuffer sb = ne
阅读全文
摘要:###给定一个整数数组,判断是否存在重复元素。 ###如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 1.双层暴力循环,超时 class Solution { public boolean containsDuplicate(int[] n
阅读全文
摘要:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 先翻转再判断,好像有点复杂 class Solution { public boolean isPalindrome(int x) { if(x==0) return true; if(x>0){ int re
阅读全文
摘要:在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。 移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回
阅读全文
摘要:注意边界 class Solution { public int myAtoi(String str) { char[] chars = str.toCharArray(); int len = chars.length; int index = 0, res = 0; // 去空格 while (
阅读全文
摘要:给定一个字符串 s,找到 s 中最长的回文子串。 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 暴力遍历,直接超时了 class Solution { public String longestPalindrome(String s) { String res=
阅读全文
摘要:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 如果字符串s长度为n 可以有某一子串重复多次构成 则 1.n必为子串长度n1的倍数 2.s[i]=s[i-n1] 暴力法: Class solution{ public boo
阅读全文
摘要:给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 和找二叉树最大深度刚好相反 dfs递归遍历,找到最小深度 /** * Definition for a binary tree node. * public class TreeNode { * int va
阅读全文

浙公网安备 33010602011771号