分发糖果
题目描述
n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。
你需要按照以下要求,给这些孩子分发糖果:
每个孩子至少分配到 1 个糖果。
相邻两个孩子评分更高的孩子会获得更多的糖果。
请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。
示例 1:
输入:ratings = [1,0,2]
输出:5
解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。
示例 2:
输入:ratings = [1,2,2]
输出:4
解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,这满足题面中的两个条件。
提示:
$n = ratings.length$
$1 <=...
分发饼干
题目描述
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能一块饼干。
对每个孩子 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。
示例 2:
输入: g = [1,2], s = [1,2,3...
四数之和
题目描述
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a],nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):
0 <= a, b, c, d < n
a、b、c 和 d 互不相同
nums[a] + nums[b] + nums[c] + nums[d] == target
你可以按 任意顺序 返回答案 。
示例 1:
输入:nums = [1,0,-1,0,-2,2], target = 0
输出:[[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]]
示例 2:
输入:nums = [2,2...
Effective Go
本文翻译自Effective Go,语句不太通顺,也可能有某些错误,欢迎指正!
Go代码规范
Getter
go不提供自动的getter和setter,你可以自己提供。需要注意的是,如果你有一个字段owner【小写,不导出的】,那么getter方法应该是Owner() 【大写,导出的】而不是GetOwner(),setter方法为常见的SetOwner()。
examples:
owner := obj.Owner()
if owner != user {
obj.SetOwner(user)
}
Interface Names
单一方法接口由方法名称加上-er后缀或类似的修饰来构造名词:Reader,Writer,Formatter,CloseNotifier...
共计 21 篇文章,3 页。