241. 为运算表达式设计优先级

给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。解题思路substring方法使用public String substring(int beginIndex)public String


1091. 二进制矩阵中的最短路径

题目描述给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径,返回 -1 。二进制矩阵中的 畅通路径 是一条从 左上角 单元格(即,(0, 0))到 右下角 单元格(即,(n - 1, n - 1))的路径,该路径同时满足下述要求:路径途经的所有单


78. 子集

题目描述给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的> > 子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。解题思路采用回溯算法暴力求解回溯算法模板result = []def backtrack(路径, 选择列表): if


698. 划分为k个相等的子集

题目描述给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。解题思路1. 思路分析把装有 n 个数字的数组 nums 分成 k 个和相同的集合,可以想象将 n 个数字分配到 k 个「桶」里,最后这 k 个「桶」里的数字之和要相同。如果切换到这


540. 有序数组中的单一元素

题目描述给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。解题思路令 index 为 Single Element 在数组中的位置。在 index 之后,数组中原来存在的成对状态被改变。如果 m 为偶数,并且 m + 1 < index,那么 nums[m


875. 爱吃香蕉的珂珂

题目描述珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。珂珂可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多


763. 划分字母区间

题目描述字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表解题思路由于同一个字母只能出现在同一个片段,显然同一个字母的第一次出现的下标位置和最后一次出现的下标位置必须出现在同一个片段。因此需要遍历字符串,得到每个字


53. 最大子序和

题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。解题思路动态规划转移方程: f(i)=max{f(i−1)+nums[i],nums[i]} static int maxSubArray(int[] nums) { i


665. 非递减数列

题目描述给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。


392. 判断子序列

题目描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余> 字符相对位置形成的新字符串。Java String indexOf() 方法public int indexOf(int ch): 返回指定字符在字符串中