跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 这几天通过做算法题,谈谈自己的对语言的感觉
未分類
26 6 月 2020

这几天通过做算法题,谈谈自己的对语言的感觉

这几天通过做算法题,谈谈自己的对语言的感觉

資深大佬 : hejw19970413 6

在 Java 中在工具包中,就提供了多种多样的数据结构的支持 map hash 栈 等等。在工业级别上这种的老牌而又稳定的数据以及语言,给予开发者很多的方便。

在 Go 中没有对应的像 Java 中那么多的数据结构支持,但是在语法上给予开发者足够的想象空间。神奇的“切片”

在 PHP 中最重要的还是在于 PHP 的数组。PHP 中的数组是万能的小黑,在官方提供的函数给予开发者足够的方便,这可能就是 PHP 能够快速开发的秘诀。

Python 接触的不多,但是每次用 Python 解决问题,好像不用费太多的步骤,直击要害。但是自己用后的感觉就是自己不知道 Python 在内部搞了什么飞机

Ps:这个只是自己的感觉。也没有什么太多的感受,就是在相同的思路上,每个语言的实现方式的不同。也能希望得到个位的指点。

大佬有話說 (34)

  • 資深大佬 : chizuo

    C++写算法才是真的爽,上到各种 stl,下到各种优化,随你折腾。

  • 資深大佬 : Vegetable

    因为做题默认不能用高级类库方法,只用数据结构,用什么语言这些基础设施的区别没特别大,当然还是会有。

    但是总体来说

    写得爽,跑的憋屈
    写的憋屈,跑的爽

  • 主 資深大佬 : hejw19970413

    @Vegetable 嗯 有道理

  • 資深大佬 : yannxia

    刷题我感觉最爽的是 Python,直接撸算法核心思想,缺点就 Timeout (个别题目)。

  • 資深大佬 : lithbitren

    如果只写各种语言内的最佳实现,py 的最佳实践九成以上都是调库,标准库实现大概率比自己实现要快,一行版的答案非常多,其他语言则很难说,毕竟一般算法题不用考虑太复杂的边界和类型,可以节省很多数据结构的开销。

  • 資深大佬 : lithbitren

    不过一般也是只有 python 发明了超越传统复杂度的新算法,大家都能大概看懂,其他语言如果出现了新算法,基本没啥人看得懂。

  • 資深大佬 : 786375312123

    @yannxia python 如果算法对的话,不会 TLE 。很多时候 TLE 了看看评论区

  • 資深大佬 : kidlj

    Go 在这些当中是最 accessible 的吧,不论是什么库,点进去看实现,因为没什么 magic,很容易就看懂。

  • 資深大佬 : lithbitren

    @786375312123 也不一定,比如 leetcode 839,从比赛变成常规题目的时候扩了数据,导致主流的两种方法用 py 写都过不了,其他主流静态语言都能轻松暴力过,国际版的 py 也没人过,卡了我两个星期才想到分类讨论 ac 了,过了以后我提了意见给官方说是不是应该延长计时,结果官方过了几天也出了一个分类讨论的解法。。

  • 資深大佬 : cmdOptionKana

    @kidlj 与现代语言相比,缺少现代黑魔法,与 C 相比,缺少古代黑魔法,因此貌似真的没有比 Go 更直白的语言了。

  • 資深大佬 : 786375312123

    @lithbitren 一般你用暴力解法过的,就算 oa 过了,现实中 onsite 面试写出来这种会有大概率挂。你说的本身暴力就不应该让过

  • 資深大佬 : lithbitren

    @786375312123 一般是这么说没错,那题除了 python 需要分类讨论,其他语言完全不需要分类讨论就能 ac,当时几百个通过的人里也没人把分类讨论当正解,常规法写完就完了。leetcode 近千题刷下来,需要在时间复杂度上分类讨论的题目几乎没有,这应该是我遇到唯一一道,很难说是一般面试考察的重点,一般面试最多是要求写出不同时间复杂度的解法。当时 leetcode 的 py 版本是 3.7,分类讨论过这题平均要 4-6 秒,不分类二十秒以上是必然的,而 c++不分类讨论也就是 200-500ms,这个时间量级在 leetcode 里也见怪不怪了,一般不会想到要去分类讨论做这题。

  • 資深大佬 : 786375312123

    @lithbitren 时间复杂度上需要讨论的多的去了,亚马逊最高频的题 Critical Connections in a Network 就是。

  • 資深大佬 : Mirage09

    @786375312123 那道题是 OA 题,至今不理解为什么要放这种题进 OA…

  • 資深大佬 : 786375312123

    @Mirage09 你说 Critical Connections in a Network ?没办法,就那么几个恶心的难题,你总要会做。

  • 資深大佬 : yafoo

    所以说,PHP 是世界上最好的语言

  • 資深大佬 : jxie0755

    @lithbitren 自从我发现很多 py 的一行版并不是最快的解法后,我感觉我就不再纠结于一定要一行解决问题了。

  • 資深大佬 : Mirage09

    @786375312123 会做是会做,但是跟其他普通 OA 题差距也太大了…幸好当时没碰到这题

  • 資深大佬 : Mirage09

    Python 的 one-liner 没意义,有本事你面试的时候也这么写…而且你看得懂,能写出来不代表面试官看得懂

  • 資深大佬 : VDimos

    树,图,链表,有些题 leetcode 直接就不提供 rust 版本的。其实 rust 用 raw pointer 也能写,但是官方不开放。

  • 資深大佬 : sxfscool

    有不少 PHPer 分不清 map 和 array[狗头]

  • 資深大佬 : lithbitren

    @786375312123 1192 吗?不是直接 tarjan 嘛,比赛的时候几分钟用拓扑排序 ac 了,比完才意识到拓扑排序是错的,这题怎么讨论

  • 資深大佬 : Rwing

    C# ???

  • 資深大佬 : liberty1900

    发明一种语言,在装编译器的时候可以选择封装度,伪”动态”类型

  • 資深大佬 : goodboy95

    大学一直用 C++搞算法题,工作两年之后想再试试,结果发现 C++没了 split 都会让我非常难受……

  • 資深大佬 : goodboy95

    @786375312123 当初在知乎上看见有人贴这题,给我的感觉就是,打 ACM 的那帮子人到底接触了几百种数据结构和算法啊

  • 資深大佬 : 786375312123

    @lithbitren 对,“直接”tarjan 。暴力解呗,不需要考虑时间复杂度?

  • 資深大佬 : 786375312123

    @goodboy95 高频题,就那么几道难的。多做做就好了,其实也没什么麻烦的。都是熟能生巧罢了

  • 資深大佬 : goodboy95

    @786375312123 主要是一群 ACMer 说这是 ACM 签到题,比赛时给人送分的那种……哎,感觉他们这水实在深

  • 資深大佬 : 786375312123

    @goodboy95 你花个一年时间去备赛也会一样的,这东西就是熟能生巧。。。而且 acm 的难度不是数据结构有多难,大多数情况是读题你得想明白这个题到底是什么问题,用什么样的算法。

  • 資深大佬 : lithbitren

    @786375312123 我说的时间复杂度讨论不是这种,说的是那题的两种解法一种是 O(m*m*n)一种是 O(m*n*n*n),python 必须依据 m 和 n 的数据规模分类讨论成 O(m*n*min(m, n*n))的复杂度才能过,其他语言都不用。

  • 資深大佬 : 786375312123

    @lithbitren 你不是说暴力吗?暴力你也可以试试遍历树,用其他语言

  • 資深大佬 : 12tall

    @Vegetable 经典啊,woc

  • 資深大佬 : LennieChoi

    写算法还是 python 最爽啊,不是说它提供了很多工具函数,是他的语法简便性。尤其 A 题的时候,不用写括号,不用写大括号,不用写分号,不用 var,各种懒人操作

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具