V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  main1234  ›  全部回复第 1 页 / 共 2 页
回复总数  39
1  2  
13 小时 34 分钟前
回复了 guanzhangzhang 创建的主题 Linux 有没有轻量级别的单机 Linux 监控
atop 系统命令就解决了
太小了,分辨率又高,写代码时间长了很累眼睛
10 天前
回复了 CareiOS 创建的主题 求职 找一份 iOS/Flutter/ Java 的工作
@playtomandjerry 有啥?什么岗位啊
12 天前
回复了 CareiOS 创建的主题 求职 找一份 iOS/Flutter/ Java 的工作
13 天前
回复了 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.第 100ms 开始执行 fsync
2.第 101ms 收到新的写命令为 set a 123 ,由于此时 fsync 没有完成切距离上次刷盘时间 2 秒内,不写 AOF buf
3.第 105ms 刷盘结束,此时 AOF buf 中是没有 set a 123 命令的
4.第 106ms 收到新的写命令为 hset ,写 AOF buf

我不知道我理解的对不对,总感觉怪怪的,如果没问题的话那么岂不是会丢命令
42 天前
回复了 csulyb 创建的主题 程序员 目前 web 后台一般是什么趋势
Baidu 已经禁止创建 PHP 项目
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   997 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 21:45 · PVG 05:45 · LAX 14:45 · JFK 17:45
Developed with CodeLauncher
♥ Do have faith in what you're doing.