android程序员的leetcode

是否在平时的业务开发中忘记了编程的魅力?
是否失去了第一次接触代码的好奇心?
可以尝试下支配数据结构,结合各种脑洞算法,巧妙解决一个个问题。
最近用的是leetcode

其实算法不仅仅是很高端的动态规划、贪心算法、各大有名算法。能熟悉一些链表、树、数组、字符串处理也是算法。算法不仅是属于算法工程师的,也属于客户端工程师。

特别适合有三分钟热度的不服输的同学
1分钟读题,2分钟想方案,然后是n分钟的编码、自测、边界case和优化直到accept。
因为3分钟后总觉得自己能行,然后不管半小时还是一小时都会解决掉它,最后很爽,很有成就感。
如果时间复杂度和空间复杂度都超过了所有人,就能兴奋小半天。如果没有最优,去评论区看看其他大佬的解法,看懂了后直呼:妙啊!

对于android工程师
我是用kotlin做题的,除了开拓思维外,也顺便更了解了kotlin使用各种数据结构。
比如

  • 有IntArray,有CharArray、StringArray吗?
  • 要求返回list<T> 但是没有add remove接口,我怎么动态添加呢?
  • 各种遍历 0..n-1,down to,step 之类的
  • 二维数组Array<CharArray> 如果要顺时针遍历,怎么搞呢
  • 通过TreeNode拷贝一棵树,ListNode返回一个链表

就算做简单题也很有趣

  • 利用快排的方案,一次遍历把数组分成左边奇数、右边偶数
  • 类斐波拉契数列问题 如果用递归stackOverflow了怎么办?
  • 重排序链表 链表会循环?
  • 遍历一颗树,结合队列和栈来帮助遍历,顺便记录下节点的层级

我的leetcode github

不定期更新,一起来提升程序员的自我修养

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容