跳至主要內容
763, 划分字母区间

一、题目描述

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。

注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。

返回一个表示每个字符串片段的长度的列表。

示例 1
输入: s = "ababcbacadefegdehijhklij"
输出: [9, 7, 8]
解释:
划分结果为"ababcbaca""defegde""hijhklij"
每个字母最多出现在一个片段中。
"ababcbacadefegde", "hijhklij"这样的划分是错误的,因为划分的片段数较少。


Mike大约 1 分钟greedymediumgreedytwo pointershash tablestring
455, 分发饼干

一、题目描述

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。

对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果s[j] >= g[i],我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

示例 1
输入: g = [1, 2, 3], s = [1, 1]
输出: 1
解释: 你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。所以你应该输出1。


Mike大约 2 分钟greedyeasygreedyarraytwo pointerssorting
28, 找出字符串中第一个匹配项的下标

一、题目描述

给你两个字符串haystackneedle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回 -1

示例 1
输入: haystack = "sadbutsad", needle = "sad"
输出: 0
解释: "sad"在下标06处匹配。第一个匹配项的下标是0,所以返回0


Mike大约 2 分钟stringeasystringstring matchingtwo pointers
151, 翻转字符串里的单词

一、题目描述

给你一个字符串s,请你反转字符串中单词的顺序。

单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词分隔开。

返回单词顺序颠倒且单词之间用单个空格连接的结果字符串。

注意:输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。


Mike大约 3 分钟stringmediumstringtwo pointers
541, 反转字符串II

一、题目描述

给定一个字符串s和一个整数k,从字符串开头算起,每计数至2k个字符,就反转这2k字符中的前k个字符。

  • 如果剩余字符少于k个,则将剩余字符全部反转。
  • 如果剩余字符小于2k但大于或等于k个,则反转前k个字符,其余字符保持原样。

示例 1
输入: "abcdefg", k = 2
输出: "bacdfeg"


Mike大约 1 分钟stringeasystringtwo pointers
344, 反转字符串

一、题目描述

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。

不要给另外的数组分配额外的空间,你必须原地修改输入数组,使用O(1)的额外空间解决这一问题。

示例 1
输入: s = ["h", "e", "l", "l", "o"]
输出: ["o", "l", "l", "e", "h"]


Mike小于 1 分钟stringeasystringtwo pointers
18, 四数之和

一、题目描述

给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a], nums[b], nums[c], nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):

  • 0 <= a, b, c, d < n
  • abcd互不相同
  • nums[a] + nums[b] + nums[c] + nums[d] == target

Mike大约 3 分钟hashtablemediumarraytwo pointerssorting
16, 最接近的三数之和

一、题目描述

给你一个长度为n的整数数组nums和一个目标值target。请你从nums中选出三个整数,使它们的和与target最接近。

返回这三个数的和。

假定每组输入恰好只存在一个解。

示例 1
输入: nums = [-1, 2, 1, -4], target = 1
输出: 2
解释: 与target最接近的和是2 (-1 + 2 + 1 = 2)。


Mike大约 2 分钟hashtablemediumarraytwo pointerssorting
15, 三数之和

一、题目描述

给你一个整数数组nums,判断是否存在三元组[nums[i], nums[j], nums[k]]满足i != j、i != k 且 j != k,同时还满足nums[i] + nums[j] + nums[k] == 0。请你返回所有和为0且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例 1
输入: nums = [-1, 0, 1, 2, -1, -4]
输出: [[-1, -1, 2], [-1, 0, 1]]
解释:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0。
不同的三元组是[-1, 0, 1] 和 [-1, -1, 2]。
注意,输出的顺序和三元组的顺序并不重要。


Mike大约 2 分钟hashtablemediumarraytwo pointerssorting
202, 快乐数

一、题目描述

编写一个算法来判断一个数n是不是快乐数。

快乐数」的定义为:

  • 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
  • 然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1
  • 如果这个过程的结果为1,那么这个数就是快乐数。

如果n快乐数就返回true;不是则返回false


Mike大约 1 分钟hashtableeasyhash tablemathtwo pointers
2
3