贪心基础讲解
题目1:455.分发饼干
讲解
leetcode
class Solution {
func findContentChildren(_ g: [Int], _ s: [Int]) -> Int {
let g = g.sorted()
let s = s.sorted()
var res = 0
var gi = 0
for si in 0..<s.count {
if gi < g.count, s[si] >= g[gi] {
res += 1
gi += 1
}
}
return res
}
}
题目2:
讲解
leetcode
class Solution {
func wiggleMaxLength(_ nums: [Int]) -> Int {
var curdiff = 0
var prediff = 0
var res = 1
for i in 0..<nums.count - 1 {
let curdiff = nums[i + 1] - nums[i]
if (prediff <= 0 && curdiff > 0) || (prediff >= 0 && curdiff < 0) {
prediff = curdiff
res += 1
}
}
return res
}
}
题目3:53. 最大子数组和
讲解
leetcode
class Solution {
func maxSubArray(_ nums: [Int]) -> Int {
var res = -Int.max
var sum = 0
for i in 0..<nums.count {
sum += nums[i]
res = max(res, sum)
if sum < 0 { sum = 0 }
}
return res
}
}