你背不下来的书,总有人能背下来;你做不出来的题,总有人能做出来;你愿意拖到明天的事,总有人今天努力做完;那么不好意思,你想去的学校也只能别人去了,你想过的人生也只能别人过了。


路虽然很漫长,很孤单,但是只要你走出一步,你离目的地就近一步,千万不能停在原地叹息,否则永远都无法到达目的地。

Algorithm

没有哪个大牛对数据结构和算法是不熟练的。LeetCode 算法题,至少一题

题目链接:https://leetcode-cn.com/problems/string-to-integer-atoi/submissions/
将字符串转换为整数,发现自己好菜,一些边界值没有判断出来。最后虽然做出来,但是执行效率很差,需要看看别人写的,进行优化。

  1. public class Atoi {
  2. public static void main(String[] args) {
  3. System.out.println(Pattern.matches("\\d", "2"));
  4. String str = "22334";
  5. Assert.assertEquals(22334, new Atoi().myAtoi(str));
  6. str = "-23ssd";
  7. Assert.assertEquals(-23, new Atoi().myAtoi(str));
  8. str = "abc 23";
  9. Assert.assertEquals(0, new Atoi().myAtoi(str));
  10. str = " 2 3";
  11. Assert.assertEquals(2, new Atoi().myAtoi(str));
  12. str = "99999999999";
  13. Assert.assertEquals(Integer.MAX_VALUE, new Atoi().myAtoi(str));
  14. str = " -42";
  15. Assert.assertEquals(-42, new Atoi().myAtoi(str));
  16. str = " -";
  17. Assert.assertEquals(0, new Atoi().myAtoi(str));
  18. str = "+1";
  19. Assert.assertEquals(1, new Atoi().myAtoi(str));
  20. str = "+";
  21. Assert.assertEquals(0, new Atoi().myAtoi(str));
  22. str = "-91283472332";
  23. Assert.assertEquals(-2147483648, new Atoi().myAtoi(str));
  24. str = " +0 123";
  25. Assert.assertEquals(0, new Atoi().myAtoi(str));
  26. str = " 0000000000012345678";
  27. Assert.assertEquals(12345678, new Atoi().myAtoi(str));
  28. str = "20000000000000000000";
  29. Assert.assertEquals(Integer.MAX_VALUE, new Atoi().myAtoi(str));
  30. str = "- 234";
  31. Assert.assertEquals(0, new Atoi().myAtoi(str));
  32. }
  33. public int myAtoi(String str) {
  34. System.out.println("in:" + str);
  35. if (str == null || str.length() == 0) {
  36. return 0;
  37. }
  38. int symbol = 1;
  39. str = str.trim();
  40. boolean flag = false;
  41. StringBuilder sb = new StringBuilder();
  42. str = str.trim();
  43. for (int i = 0; i < str.length(); i++) {
  44. if ((int)' ' == (int)str.charAt(i)) {
  45. if (sb.length() > 0 || !" ".equals(String.valueOf(str.charAt(0)))) {
  46. break;
  47. }
  48. continue;
  49. }
  50. if ((int)'-' == (int)str.charAt(i) && i == 0) {
  51. symbol = -1;
  52. flag = true;
  53. continue;
  54. }
  55. if ((int)'+' == (int)str.charAt(i) && i == 0) {
  56. flag = true;
  57. continue;
  58. }
  59. if (Pattern.matches("\\d",String.valueOf(str.charAt(i)))) {
  60. sb.append(str.charAt(i));
  61. }else if (i == 0){
  62. return 0;
  63. } else {
  64. break;
  65. }
  66. }
  67. String s = sb.toString();
  68. int idx = 0;
  69. for (int i = 0; i < s.length(); i++) {
  70. if (String.valueOf(s.charAt(i)).equals("0")) {
  71. idx ++;
  72. }else {
  73. break;
  74. }
  75. }
  76. s = s.substring(idx);
  77. if (s.length() == 0) {
  78. return 0;
  79. }
  80. if (s.length() > 10) {
  81. return symbol > 0 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
  82. }
  83. Long a = Long.valueOf(s) * symbol;
  84. int res = a > Integer.MAX_VALUE
  85. ? Integer.MAX_VALUE : (a < Integer.MIN_VALUE
  86. ? Integer.MIN_VALUE : a.intValue());
  87. System.out.println(res);
  88. return res;
  89. }
  90. }

Review

流畅的阅读英文技术资料是一个大牛必备的。英文学习,以技术翻译为主

这篇没看懂好难,翻译

Tip

保持好奇,保持学习。至少一个技巧,以技术技巧为主

最近学习了 Git 的一个新操作,git stash 保存当前现场记录。

使用场景,假设现在在dev分支开发,突然说该分支有个bug需要紧急修复下,但是你又不想提交目前正在开发的代码,就可以使用 git stash 保存记录。

创建的几个命令:

git stash list # 查看都有哪些记录

git stash save ‘msg’ # 保存现场记录,并写个注释,方便后面查看

git stash apply stash@{0} # 恢复第0个现场记录,但是不会从stash列表中删除

git stash pop stash@{1} # 恢复第1个现场记录,但是会从stash列表中删除该现场记录

Share

要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的文章,也可以是技术总结的文章。

谈两个感悟。一个是工作上的,一个是理财上的。

开始适应工作了方式了,每天的日报,晨会,周报。当然之前听很多人说晨会就是浪费时间之类的言辞,这些确实都存在,但我认为有这几个好处:

  1. 这个机制是对大多数人来设定的,它是符合且能提高大多数人的工作效率
  2. 仪式感,不断强化每个人的工作内容和状态,时时有事干,日日有产出
  3. 团队参与感,虽然不能具体参与,但是可以了解最近团队的动向,听听比你优秀的人的发言,向更优秀的人学习,屏蔽掉无用的信息,这不就是成长的过程吗?
  4. 既然避免不了,改变不了,那就做到最好,开会浪费时间?那可以每次开会自发的总结开会内容,然后和专门记录的同学对比下,你们之间的差别,对信息的提取,总结,这也是个能力。

理财上就是最近美股熔断,如果之前没有买基金,炒股之类的操作,觉得跟我们小老百姓没关系,但是真正参与了二级、三级市场,感同身受啊,太惨了。我原来在且慢买的基金一度达到了10%,现在反而跌了7%,还是自己贪婪了,因为我的目标是12%-15%,谁也想不到,但又是必然事件,疫情只是一个导火线而已。不过国内市场依然看好,因为有无数的年轻人在奋斗努力,国家也在成长,这是很重要的一点。还有就是对于虚拟货币,是得反思下了,没有巨头兜底,很容易崩掉,除了 BTC,ETH 在灰黑产上有点作用,其它的都是韭菜币。

认知变现,再用钱学习新的知识,然后再去赚更多的 money,这是一个正循环的机制,希望每个人都最后都能既赚到了钱,又有了更高的认知维度。