BY Blog

とことんまで戦う

leetcode39组合总和

leetcode39 Combination Sum

前言 新的一年,好好学习。 正文 问题来源 本问题来自leetcode上的39题。 问题描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示...

leetcode42接雨水

leetcode42 Trapping Rain Water

前言 新的一年,好好学习。 正文 问题来源 本问题来自leetcode上的42题。 问题描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 分析: 解法一 通过分别计算每一坐标i上有多少水,进而将其相加得到答案。 问题是我们如何知道每一坐...

leetcode221最大正方形

leetcode221 Maximal Square

前言 新的一年,好好学习。 正文 问题来源 本问题来自leetcode上的221题。 问题描述 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例 1: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 分析: 思想和我去年做的leetcode85一致。 func max_f(a...

leetcode31下一个排列

leetcode31 Next Permutation

前言 新的一年,好好学习。 正文 问题来源 本问题来自leetcode上的31题。 问题描述 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 示例 1: 1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1...

leetcode20有效的括号

leetcode20 Valid Parentheses

前言 新的一年,好好学习。 正文 问题来源 本问题来自leetcode上的20题。 问题描述 给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 示例 1: 输入: "([)]" 输出: false 示例 2: 输入: "{[]}" 输出: ...

leetcode93复原IP地址

leetcode93 Restore IP Addresses

前言 新的一年,好好学习。 正文 问题来源 本问题来自leetcode上的93题。 问题描述 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 示例 1: 输入: "25525511135" 输出: ["255.255.11.135", "255.255.111.35"] 分析: 回溯法 func restoreIpAddresses(s string)...

leetcode90子集II

leetcode90 Subsets II

前言 新的一年,好好学习。 正文 问题来源 本问题来自leetcode上的90题。 问题描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" ...

Fisher–Yates洗牌算法

Fisher–Yates shuffle

前言 新的一年,好好学习。 正文 问题来源 看代码的时候看到该算法。 问题描述 给定一个数组,将其完全打乱。 分析: 1.定义一个数组(shuffled),长度(length)是原数组(arr)长度 2.取 0 到 index (初始0) 随机值 rand, shuffled[index] = shuffled[rand], shuffled[rand] = arr[index...

leetcode125验证回文串

leetcode125 Valid Palindrome

前言 新的一年,好好学习。 正文 问题来源 本问题来自leetcode上的125题。 问题描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car"...

leetcode111二叉树的最小深度

leetcode111 Minimum Depth of Binary Tree

前言 新的一年,好好学习。 正文 问题来源 本问题来自leetcode上的111题。 问题描述 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 ...