V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Claar  ›  全部回复第 3 页 / 共 5 页
回复总数  81
1  2  3  4  5  
2021-02-07 21:56:26 +08:00
回复了 Peakday 创建的主题 Go 编程语言 查找匹配文本这段代码运行起来很慢是什么原因
我认为反前缀的思路感觉也可以,就是应该比正常写法稍慢

我放到 IDE 里认真看才意识到这个写法真的是巨憨批
直接正则匹配所有的 domain,再遍历分析数量不可以吗?

我认为你的问题是你正则了 1200 次全文,这简直顶级憨批行为
2021-02-07 11:54:07 +08:00
回复了 wapzjn 创建的主题 问与答 想换个城市,能否给个推荐
暖且互联网不就是深圳吗?广州感觉互联网气息不够钱
感觉常见的回收 app 都不如闲鱼
2021-02-07 00:44:09 +08:00
回复了 zoeliu 创建的主题 问与答 请教 同一网络环境,通过 ip:port 的方式访问本地部署的网站
@zoeliu grep 整个文件夹搜索一下关键字?
2021-02-07 00:42:09 +08:00
回复了 jianzong 创建的主题 推广 [送码] 猜对腾讯股价,赠送 Percento iOS 高级会员
722
2021-02-01 15:51:35 +08:00
回复了 fxybk 创建的主题 问与答 一道数据结构相关的题,请教一下站里的大神们
@fxybk #10
哈哈哈其实简单的判断并不难,只需要知道
1.哈希表是多数情况下 key-value 储存算法的选择,他的算法复杂度不高,效率相对来说应该是能经过考验的。另外“hash”也是指具体的“实现方式”
2.树形是常见普通人手写 key-value 算法选择,和哈希表对比可能他的速度稍稍差一点点(但是树形实现多数情况下速度也很优秀了,如果选用具体的如红黑树这种经典树形实现(红黑树算是树里面相当优秀的),基本是很够用了),且树形相对哈希来说可能好写一些(这只是个人认为)
3.像哈希这种优秀的算法比较大的缺点是空间占用不小,一般来说你要储存 100 个 key-value 可能需要 300 个左右的空间
4.相对来说树的具体实现,红黑树是很优秀的,但难写一些,AVL 没红黑树强,但依然优秀,且比较好写
5.树形实现速度也很快,复杂度是 O(log N),大概就是总量为 2 ^ 20 次方的数据,每次查找差不多只需要查 20 个数据即可,而和一般的如队列从头找到尾的查找方案对比是快的没边了
6.LRU 是缓存置换算法,并不是具体的“实现”,只是一种思想形成的结构,也就是说只要满足一定的特征就能称为 LRU,但是具体实现方案的不同,效率可能差很远

在没有特殊技巧的前提下,如果侧重速度,选用哈希表 /树来储存 key-value 应该平均下来最快的了。
如果有特殊技巧,比如:最近用过的数据接下来被使用的几率更高这种规律下,如果频繁的进行查找最近用过的几个数据,那么队列的实现会快一丢丢(因为虽然有 2 ^ 20 个数据,但你查来查去只查前面几个,那当然容易啊)
而且“最近用过的数据接下来被使用的几率更高”这种规律其实只是像算力“摩尔定律”一样只是人为粗略的概括起来的一种规律,实际效果比较玄学,如果不是空间很有限的话,我认为根本没必要使用严格的 LRU 实现,直接使用自带的哈希表存下来就可以了;而使用如(链表+哈希表)来实现的 LRU 其实就是用链表来占据“最近用过的数据接下来被使用的几率更高”的优势,除了用哈希表来查找之外,链表可以加速排在前面的项的查找,并且方便把久远没用的数据丢掉来减小空间占用


综上:如果想要实现简单,直接用语言自带的哈希表走起,不过这太简单了,估计不是人家想考的,如果要实现 LRU 的话,最好是用链表+哈希表,用哈希表来找具体位置,关于规律的部分就是把最新用的数据排到最前面,每次查找完就把这个数据放到最前排就可以了
2021-02-01 14:04:26 +08:00
回复了 fxybk 创建的主题 问与答 一道数据结构相关的题,请教一下站里的大神们
另外我始终认为出题的人描述不正确,你可以通过指出问题的问题来表现你懂的知识哈哈哈
1.实际上如果想要无特殊的限制 /规律下以尽量快的平均速度去实现储存访问,应该是哈希表或者树的实现
2.LRU 一类的缓存置换算法,其核心应该在于 1 )空间利用的最大化,2 )依据思想:如果一个数据被使用,那么接下来这个数据被再次使用的几率比其他数据高。个人认为是更偏向 1 的,(主要是我没有看过 OS 上 LRU 的官方实现)。我认为如果不是为了缓存空间的利用率尽可能高,使用哈希表这类 O(log N)的算法平均应该更快一些。
所以我觉得如果他想要的答案是 LRU 的话,应该增加一些规律要求。
@odi #145 全套都是政治正确的逻辑,一把好手啊
2021-02-01 12:54:46 +08:00
回复了 fxybk 创建的主题 问与答 一道数据结构相关的题,请教一下站里的大神们
当然,感觉 func Cache(length)这个命名有很强的 LRU 的暗示,可能他表达的就是 LRU
@odi #138 原文:
“但你那最后一句话 [只是希望他们不要再给我产生问题就阿弥陀佛了] .... 看的还真是让人心凉。”

"只是希望他们不要再给我产生问题就阿弥陀佛了"这句话从来都不令人心凉,这是客观事实
有些人就是别人的负担,这是客观描述,不会因为你的看法而改变
当然我也建议良善的三观,基于客观描述下一样可以有个人的善的选择,但是请不要混为一谈,过度政治正确就是你这种看法造成的。
另外我只想说:
1.每个人的思考都有局限性,正确答案是客观存在的,与"是谁提出的解决方案"无关,如果你要说父母提出的意见就是对的,那我估计你没有读过书
2.只有自己能为自己的思考和选择负责,先不论你和父母的选择哪个是对的或者更对,只有你自己能为自己的未来负责,那到底应该听谁的很明显了
3.更何况各位的父母大概率没读过书且见识受限,大概率看法不如你的好,为什么要听父母的话?反智主义?
4.另外:还有什么因为父母想要你结婚你就勉强找个人结婚的,为什么父母的要求你要听?你父母的意愿就是意愿,你的意愿就不是意愿了吗?为了父母的一个看法,就委屈自己的看法,凭什么?你把自己置于何地?反人性?
@odi #31
const IWillBeGoodToMyParents = true
const IWillBeBadToMyParents = false

func getRes(parentsAreAntiIntellectualism bool) bool {
fmt.Println(normal(parentsAreAntiIntellectualism))
return yourChoice(parentsAreAntiIntellectualism)
}

func normal(parentsAreAntiIntellectualism bool) string {
if parentsAreAntiIntellectualism {
return "unfortunate"
}
return "happy"
}

func yourChoice(parentsAreAntiIntellectualism bool) bool {
if parentsAreAntiIntellectualism {
return IWillBeGoodToMyParents
}
return IWillBeGoodToMyParents
}
@odi
完全不认同,
1.lz 没有表示想要父母的钱的意图
2.无论你亏欠与否,不希望别人拖后腿是事实,客观存在,至于你是否因为亏欠而愿意接受,这是基于客观事实后进一步的判断,不要把这两结构当成一个结构去描述,从而达到歪曲 lz 想法的目的
2021-02-01 10:01:13 +08:00
回复了 fxybk 创建的主题 问与答 一道数据结构相关的题,请教一下站里的大神们
感觉就是简单的哈希表啊,本身哈希表的速度不是很快了吗? lru 我没有写过,感觉 lru 的前提是储存空间不足被迫使用的方案,而且 lru 可能还会用到哈希表来储存(如果想要速度快的话),题目很可能是想要你实现一个简单的好的树实现,也可能是好的哈希表实现(我没写过这个,感觉可能会难点)
2021-02-01 01:04:00 +08:00
回复了 en20 创建的主题 职场话题 公司暴力裁员+拖欠工资,我的仲裁之路 (三) 提交仲裁申请
支持
2021-01-31 23:07:32 +08:00
回复了 suueyoung 创建的主题 Go 编程语言 怎么用 golang 搞一个 [多维的笛卡尔积] 呀?
"""
func main() {
input := [][]int{[]int{1, 2, 3, }, []int{5, 6, 7, 8}, []int{9, 10, 11, 12}}
res := make([][]int, 0)
rec := make([]int, 0)
helper(input, &res, &rec, 0)
fmt.Println(res)

}

func helper(input [][]int, res *[][]int, rec *[]int, index int) {
if index < len(input) {
for _, v := range input[index] {
*rec = append(*rec, v)
helper(input, res, rec, index+1)
*rec = (*rec)[:index]
}
return
}
tmp := make([]int, len(input))
copy(tmp, *rec)
*res = append(*res, tmp)
*rec = (*rec)[:index]
}

"""
2021-01-31 22:55:52 +08:00
回复了 suueyoung 创建的主题 Go 编程语言 怎么用 golang 搞一个 [多维的笛卡尔积] 呀?
哈哈哈看来 V2EX 的少年算法水平不行啊
这看起来是求全排列吗?
最基本的解决方案可以看基础的算法里的暴力破解,不剪枝
手机登的 V2EX 没法发代码……图片也不知道咋发
2021-01-18 02:40:12 +08:00
回复了 sunnywqf 创建的主题 Apple 最近 iOS14.3 杀后台很严重
@theolin ರ_ರ 说得好像我另外开 app 点外卖就能不用 wechat 一样
2021-01-17 17:59:27 +08:00
回复了 sunnywqf 创建的主题 Apple 最近 iOS14.3 杀后台很严重
ios14.1,se2,王者换微信小程序订个外卖,回来就要登录了……
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5609 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 03:02 · PVG 11:02 · LAX 20:02 · JFK 23:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.