
LeetCode
Geek_sun
为梦想而努力。
展开
-
leetcode 443. 压缩字符串
给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。进阶:你能否仅使用O(1) 空间解决问题?示例 1:输入:["a","a","b","b","c","c","c"]输出:返回6,输入数组的前6个字符应该是:["a",...原创 2019-11-09 08:54:39 · 237 阅读 · 0 评论 -
leetcode 437. 路径总和 III
给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8...原创 2019-11-03 16:50:14 · 239 阅读 · 0 评论 -
leetcode 392. 判断子序列
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例1:s ...原创 2019-11-02 11:44:14 · 204 阅读 · 0 评论 -
leetcode-401. 二进制手表
二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。例如,上面的二进制手表读取 “3:25”。给定一个非负整数 n代表当前 LED 亮着的数量,返回所有可能的时间。案例:输入: n = 1返回: ["1:00", "2:00", "4:00", "8:00", "0:01",...原创 2019-10-16 20:46:49 · 311 阅读 · 1 评论 -
leetcode 669. 修剪二叉搜索树
给定一个二叉搜索树,同时给定最小边界L和最大边界R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。示例 1:输入: 1 / \ 0 2 L = 1 R = 2输出: 1 \ 2示例 2:输入: ...原创 2019-04-08 18:40:24 · 140 阅读 · 0 评论 -
leetcode 429. N叉树的层序遍历
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。例如,给定一个3叉树:返回其层序遍历:[ [1], [3,2,4], [5,6]]说明:树的深度不会超过1000。 树的节点总数不会超过5000。递归实现/*// Definition for a Node.class Node { pu...原创 2019-04-08 20:59:49 · 225 阅读 · 0 评论 -
leetcode 389. 找不同
给定两个字符串s和t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。示例:输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那个被添加的字母。方法1class Solution { public char findTheDifference(St...原创 2019-04-20 15:43:15 · 317 阅读 · 0 评论 -
LeetCode 14.最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。第一种方法,把str看成list而st...原创 2019-09-02 22:03:38 · 176 阅读 · 0 评论 -
leetcode 53.最大子序和
题目描述:最大子序和给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。例如,给定序列[-2,1,-3,4,-1,2,1,-5,4],连续子序列[4,-1,2,1]的和最大,为6。扩展练习:若你已实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。第一种方法:...原创 2019-09-03 13:12:26 · 160 阅读 · 0 评论 -
leetcode-88. 合并两个有序数组
给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 =...原创 2019-09-14 14:29:25 · 195 阅读 · 0 评论 -
leetcode 559. N叉树的最大深度
给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。例如,给定一个3叉树:我们应返回其最大深度,3。说明:树的深度不会超过1000。 树的节点总不会超过5000。dfs递归求深度/*// Definition for a Node.class Node { public int val; pub...原创 2019-04-01 21:20:06 · 195 阅读 · 0 评论 -
leetcode 589. N叉树的前序遍历
给定一个 N 叉树,返回其节点值的前序遍历。例如,给定一个3叉树:返回其前序遍历:[1,3,5,6,2,4]。非递归写法/*// Definition for a Node.class Node { public int val; public List<Node> children; public Node() {} ...原创 2019-03-31 17:03:01 · 209 阅读 · 0 评论 -
27. 移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前...原创 2018-07-19 00:37:59 · 194 阅读 · 0 评论 -
leetcode 59 螺旋矩阵 II
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]] class Solution {public int[][] generateMatrix(int n) { int count = 1; ...原创 2018-11-26 15:43:32 · 237 阅读 · 0 评论 -
leetcode 754. 到达终点数字
在一根无限长的数轴上,你站在0的位置。终点在target的位置。每次你可以选择向左或向右移动。第 n 次移动(从 1 开始),可以走 n 步。返回到达终点需要的最小移动次数。示例 1:输入: target = 3输出: 2解释:第一次移动,从 0 到 1 。第二次移动,从 1 到 3 。示例 2:输入: target = 2输出: 3解释:第一次移动,从...原创 2018-11-26 19:34:04 · 856 阅读 · 0 评论 -
leetcode-225用队列实现栈
使用队列实现栈的下列操作:push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是push to back,peek/pop from front,size, 和is empty这些操作是合法的。 你所使用的语言也许不支持队列。你可以使用 lis...原创 2019-03-16 16:45:38 · 287 阅读 · 0 评论 -
leetcode-232. 用栈实现队列
使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返回 1qu...原创 2019-03-16 19:21:31 · 179 阅读 · 0 评论 -
leetcode-703. 数据流中的第K大元素
设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的KthLargest类需要一个同时接收整数k和整数数组nums的构造器,它包含数据流中的初始元素。每次调用KthLargest.add,返回当前数据流中第K大的元素。示例:int k = 3;int[] arr = [4,5,8,2];KthLargest kthLa...原创 2019-03-16 21:11:03 · 252 阅读 · 0 评论 -
leetcode 977. 有序数组的平方
示例 1:输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]示例 2:输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= A.length <= 10000 -10000 <= A[i] <= 10000 A已按非递减顺序排序。第一个想法是把直接把所有的元素都平方然后排序,复杂度...原创 2019-03-24 23:56:38 · 388 阅读 · 0 评论 -
leetcode 590. N叉树的后序遍历
给定一个 N 叉树,返回其节点值的后序遍历。例如,给定一个3叉树:返回其后序遍历:[5,6,3,2,4,1].说明:递归法很简单,你可以使用迭代法完成此题吗?迭代法/*// Definition for a Node.class Node { public int val; public List<Node> children;...原创 2019-03-30 11:54:54 · 286 阅读 · 0 评论 -
leetcode-874. 模拟行走机器人
机器人在一个无限大小的网格上行走,从点(0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类型的命令:-2:向左转90 度 -1:向右转 90 度 1 <= x <= 9:向前移动x个单位长度在网格上有一些格子被视为障碍物。第i个障碍物位于网格点 (obstacles[i][0], obstacles[i][1])如果机器人试图走到障碍物上方,那...原创 2019-03-24 10:29:00 · 427 阅读 · 0 评论 -
leetcode.844 比较含退格的字符串
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。这个题目主要是在于栈的应用,若当前字母为'#'则将栈顶元素出栈,否则将当前字母入栈。第一次碰见不会写正常,希望下次能顺利解决类似的题目。leetcode上似乎只需要给出 backspaceCompare函数的代码,若多此一举则会报错。#include <iostre...原创 2018-07-18 23:39:59 · 317 阅读 · 0 评论