V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  main1234  ›  全部回复第 5 页 / 共 7 页
回复总数  121
1  2  3  4  5  6  7  
197 天前
回复了 main1234 创建的主题 问与答 如何识别爬虫和无头浏览器的流量
@NoOneNoBody 有相关的文章、书、资料能推荐下么
198 天前
回复了 main1234 创建的主题 问与答 如何识别爬虫和无头浏览器的流量
@duan602728596 解压那个是啥意思???收到压缩的响应后,只有桌面或者 app 上才有 zlib 程序么
199 天前
回复了 guanzhangzhang 创建的主题 Linux 有没有轻量级别的单机 Linux 监控
atop 系统命令就解决了
太小了,分辨率又高,写代码时间长了很累眼睛
209 天前
回复了 CareiOS 创建的主题 求职 找一份 iOS/Flutter/ Java 的工作
@playtomandjerry 有啥?什么岗位啊
211 天前
回复了 CareiOS 创建的主题 求职 找一份 iOS/Flutter/ Java 的工作
212 天前
回复了 CareiOS 创建的主题 求职 找一份 iOS/Flutter/ Java 的工作
北京考虑么,[email protected] 给我发一个简历
@magic3584 谢谢您
@xing7673 求问为啥赚钱选 IOS 呢??
@magic3584 感谢,学习路线是先原生还是先 flutter RN ???
@bthulu


func reverse(arr []int, target1, target2 int) [][]int {
res := make([][]int, 0)
// 先排序
sort.Ints(arr)
// 逆序排序
for i := 0; i < len(arr)/2; i++ {
arr[i], arr[len(arr)-i-1] = arr[len(arr)-i-1], arr[i]
}
sum := 0
track := make([]int, 0)
var fn func(start int)
fn = func(start int) {
if sum > target1 && sum-track[len(track)-1] < target1 && sum-track[len(track)-1] <= target1-target2 {
tmp := make([]int, len(track))
copy(tmp, track)
res = append(res, tmp)
return
}
for i := start; i < len(arr); i++ {
if sum-arr[i] >= target1 {
continue
}
if sum-arr[i] >= target1-target2 {
continue
}
sum += arr[i]
track = append(track, arr[i])
fn(i + 1)
track = track[:len(track)-1]
sum -= arr[i]
}
}
fn(0)
return res
}
@bthulu 对,改成你的判断,然后在 for 里面放两个剪枝就行了
我的算法应该能继续剪枝
func reverse(arr []int, target1, target2 int) [][]int {
res := make([][]int, 0)
// 先排序
sort.Ints(arr)
// 逆序排序
for i := 0; i < len(arr)/2; i++ {
arr[i], arr[len(arr)-i-1] = arr[len(arr)-i-1], arr[i]
}
sum := 0
track := make([]int, 0)
var fn func(start int)
fn = func(start int) {
if start == len(arr) {
if sum < target1 && sum-track[len(track)-1] < target1 && sum-track[len(track)-1] < target1-target2 {
tmp := make([]int, len(track))
copy(tmp, track)
res = append(res, tmp)
return
}
}
for i := start; i < len(arr); i++ {
sum += arr[i]
track = append(track, arr[i])
fn(i + 1)
track = track[:len(track)-1]
sum -= arr[i]
}
}
fn(0)
return res
}
对于奇数,二进制表示中奇数一定比前面的偶数多一个 1 ,多的就是最低位的 1
如 0 = 0 ,1 = 1 ,2=10 ,3=11
对于偶数,二进制表示中偶数一定和除以 2 之后的那个数一样多,因为最低位是 0 ,除以 2 就是右移一位
2 = 10 ,4=100 ,8=1000
这里不就是奇数和偶数判断一下么,如果元素为 i ,i 如果是奇数则 i 的二进制 1 为 i-1 的二进制 1 个数+1 ,如果是偶数则是 i/2 的二进制数
@zhuisui 求教下,也就是说命令都会写到 aof buffer ,如果 write 到 aof file 时候发现正在 fsync 则不会 write
@zhuisui https://cloud.tencent.com/developer/article/1809891 所以这个文章里面说的是错的么
@codegenerator aof_last_fsync 这个字段就是刷盘时间
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2842 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 13:51 · PVG 21:51 · LAX 05:51 · JFK 08:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.