你背不下来的书,总有人能背下来;你做不出来的题,总有人能做出来;你愿意拖到明天的事,总有人今天努力做完;那么不好意思,你想去的学校也只能别人去了,你想过的人生也只能别人过了。
路虽然很漫长,很孤单,但是只要你走出一步,你离目的地就近一步,千万不能停在原地叹息,否则永远都无法到达目的地。
Algorithm
没有哪个大牛对数据结构和算法是不熟练的。LeetCode 算法题,至少一题
题目链接:https://leetcode-cn.com/problems/string-to-integer-atoi/submissions/
将字符串转换为整数,发现自己好菜,一些边界值没有判断出来。最后虽然做出来,但是执行效率很差,需要看看别人写的,进行优化。
public class Atoi {public static void main(String[] args) {System.out.println(Pattern.matches("\\d", "2"));String str = "22334";Assert.assertEquals(22334, new Atoi().myAtoi(str));str = "-23ssd";Assert.assertEquals(-23, new Atoi().myAtoi(str));str = "abc 23";Assert.assertEquals(0, new Atoi().myAtoi(str));str = " 2 3";Assert.assertEquals(2, new Atoi().myAtoi(str));str = "99999999999";Assert.assertEquals(Integer.MAX_VALUE, new Atoi().myAtoi(str));str = " -42";Assert.assertEquals(-42, new Atoi().myAtoi(str));str = " -";Assert.assertEquals(0, new Atoi().myAtoi(str));str = "+1";Assert.assertEquals(1, new Atoi().myAtoi(str));str = "+";Assert.assertEquals(0, new Atoi().myAtoi(str));str = "-91283472332";Assert.assertEquals(-2147483648, new Atoi().myAtoi(str));str = " +0 123";Assert.assertEquals(0, new Atoi().myAtoi(str));str = " 0000000000012345678";Assert.assertEquals(12345678, new Atoi().myAtoi(str));str = "20000000000000000000";Assert.assertEquals(Integer.MAX_VALUE, new Atoi().myAtoi(str));str = "- 234";Assert.assertEquals(0, new Atoi().myAtoi(str));}public int myAtoi(String str) {System.out.println("in:" + str);if (str == null || str.length() == 0) {return 0;}int symbol = 1;str = str.trim();boolean flag = false;StringBuilder sb = new StringBuilder();str = str.trim();for (int i = 0; i < str.length(); i++) {if ((int)' ' == (int)str.charAt(i)) {if (sb.length() > 0 || !" ".equals(String.valueOf(str.charAt(0)))) {break;}continue;}if ((int)'-' == (int)str.charAt(i) && i == 0) {symbol = -1;flag = true;continue;}if ((int)'+' == (int)str.charAt(i) && i == 0) {flag = true;continue;}if (Pattern.matches("\\d",String.valueOf(str.charAt(i)))) {sb.append(str.charAt(i));}else if (i == 0){return 0;} else {break;}}String s = sb.toString();int idx = 0;for (int i = 0; i < s.length(); i++) {if (String.valueOf(s.charAt(i)).equals("0")) {idx ++;}else {break;}}s = s.substring(idx);if (s.length() == 0) {return 0;}if (s.length() > 10) {return symbol > 0 ? Integer.MAX_VALUE : Integer.MIN_VALUE;}Long a = Long.valueOf(s) * symbol;int res = a > Integer.MAX_VALUE? Integer.MAX_VALUE : (a < Integer.MIN_VALUE? Integer.MIN_VALUE : a.intValue());System.out.println(res);return res;}}
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
要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的文章,也可以是技术总结的文章。
谈两个感悟。一个是工作上的,一个是理财上的。
开始适应工作了方式了,每天的日报,晨会,周报。当然之前听很多人说晨会就是浪费时间之类的言辞,这些确实都存在,但我认为有这几个好处:
- 这个机制是对大多数人来设定的,它是符合且能提高大多数人的工作效率
- 仪式感,不断强化每个人的工作内容和状态,时时有事干,日日有产出
- 团队参与感,虽然不能具体参与,但是可以了解最近团队的动向,听听比你优秀的人的发言,向更优秀的人学习,屏蔽掉无用的信息,这不就是成长的过程吗?
- 既然避免不了,改变不了,那就做到最好,开会浪费时间?那可以每次开会自发的总结开会内容,然后和专门记录的同学对比下,你们之间的差别,对信息的提取,总结,这也是个能力。
理财上就是最近美股熔断,如果之前没有买基金,炒股之类的操作,觉得跟我们小老百姓没关系,但是真正参与了二级、三级市场,感同身受啊,太惨了。我原来在且慢买的基金一度达到了10%,现在反而跌了7%,还是自己贪婪了,因为我的目标是12%-15%,谁也想不到,但又是必然事件,疫情只是一个导火线而已。不过国内市场依然看好,因为有无数的年轻人在奋斗努力,国家也在成长,这是很重要的一点。还有就是对于虚拟货币,是得反思下了,没有巨头兜底,很容易崩掉,除了 BTC,ETH 在灰黑产上有点作用,其它的都是韭菜币。
认知变现,再用钱学习新的知识,然后再去赚更多的 money,这是一个正循环的机制,希望每个人都最后都能既赚到了钱,又有了更高的认知维度。
