leetcode算法
文章平均质量分 51
leetcode算法题总结
张永星666
甲蛙第十二代传人
展开
-
复原IP地址
给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效 IP 地址。示例 1:输入:s = "2552551113原创 2021-05-18 16:30:09 · 151 阅读 · 0 评论 -
买卖股票的最佳时间
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不原创 2021-05-04 20:05:57 · 263 阅读 · 0 评论 -
滑动窗口专题
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是原创 2021-04-20 19:45:37 · 92 阅读 · 0 评论 -
最小的K个数
输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]解法一:最简单最傻瓜,直接调用库函数排序取前K个class Solution { public int[] getLeastNumbers(int[] arr, int k) {原创 2021-04-18 16:35:44 · 226 阅读 · 0 评论 -
旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0分三种情况:第一种情况:数组:[1, 2, 3, 4, 5] 1和2旋转后数组尾部,旋转后为:[3, 4, 5, 1, 2]第二种情况:数组:[1, 2, 3, 4, 5原创 2020-12-14 18:27:09 · 86 阅读 · 0 评论 -
重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7即返回 [3,9,20,null,null,15,7]解题是次要的,首先我想说的是,如何确定一颗唯一的二叉树?先序+中序 or 中序+后序 都是可以的,但是先序原创 2020-12-05 20:13:45 · 89 阅读 · 0 评论 -
青蛙跳台阶以及斐波那契数列
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示:0 <= n <= 100呜呜呜,我只是一只思维简单的青蛙,为什么要问我这么复杂的问题呢,我只直到如果只有1个台阶我直接跳一下就好了,2个台阶我跳两个一下原创 2020-12-05 20:01:05 · 379 阅读 · 0 评论 -
不用+ - * / 实现加法运算
写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。示例:输入: a = 1, b = 1输出: 2提示:a, b 均可能是负数或 0结果不会溢出 32 位整数我觉得写这个题一定要对原反补码的机制非常熟悉,其实加减乘除本身就是我们人自己的思维,在硬件底层笨猪CPU是没有这么复杂的想法的,首先CPU只有加法,移位和取反三个法则,而计算机底层都是用补码来进行运算的,为什么是补码呢?以减法为例:你可以任意举例,因为我说过CPU没有设计专门的减法运原创 2020-12-04 17:54:37 · 225 阅读 · 0 评论 -
二叉搜索树的最近公共祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: 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 解释: 节点 2原创 2020-12-04 16:19:22 · 210 阅读 · 0 评论 -
实现strStr()函数
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出: -1说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。原创 2020-11-23 18:16:50 · 724 阅读 · 0 评论