好久没有写解题报告了,今天做了一下比赛,这场比赛的题目比较简单。一二题代码很短,题意明白会很快写完,第三题看着很难,但是测试数据简单,直接暴力就可以过。
第四题也是一道简单的动态规划题,只是模拟规则比较复杂。
下面是详细的题解和思考。
比赛的地址 Weekly Contest 157
https://leetcode-cn.com/contest/weekly-contest-157
1. 玩筹码题目:
玩筹码(Play with Chips)
地址:
https://leetcode-cn.com/contest/weekly-contest-157/problems/play-wi...
这场比赛不需要太多特定的算法,只要能把问题分析清楚,认真思考,就能够解决掉。几个题目都非常适合当面试题。
下面是详细的题解和思考。
比赛的地址 Weekly Contest 158
https://leetcode-cn.com/contest/weekly-contest-158
1. 分割平衡字符串题目:
分割平衡字符串(Split a String in Balanced Strings)
地址:
https://leetcode-cn.com/contest/weekly-contest-158/problems/split-a-string-in-balanced-strin...
本周做完比赛收获比较大,对二分查找还有滑动窗口有了更新的认识。也深深感到要想达到一定的高度,刻意练习是一定要做的。有些题目别人两分钟写完代码,但是不会的即使一天也没思路。看看排名前面的,十几分钟搞定四道题,一定是经过了不少练习,再加上先天智商达到的。
第三题可以用二分查找在Nlog(N)解答,还可以用滑动窗口在O(N)情况下解答。赛后看别人代码,理解好半天才看明白滑动窗口解答,想到的证明感觉也不太严谨。通过这个题目拓宽了思路,以后遇到类似问题,应该能解答的好一些。
第一题是判定三点共线,之前比赛有遇到。所以很快就搞定了。也算是练习有点成果。
现在做题还是靠灵感,做多了,思考多了才能靠经验...
微信这个国民级APP,有些产品特性还是很有特点的。把之前的发现记录一些,可以参考下背后的哲学和道理。
PC版去掉帮忙删空格功能在之前的某个微信PC版本,热心地帮用户把消息前后的空格给删除掉。但是在后来的版本迭代中,又给去掉了。
用户有时真的就要在消息前面发空格,帮用户删掉很热心,但用户可能也不买账。
发现tab中可以删掉所有功能记得从前「朋友圈」和「玩一玩」是删不掉的,现在的版本是都能删掉的。给用户更多的选择,不需要的用户自然就不需要,不要限制他强用某个功能。 这个设置,只能设置开关,不能设置位置上调和下降。如果能上下调位置,当然对某些人是刚需,而且以微信的研发实力做这个功能也不...
人人都要effective最近发现,几本不同领域的书,看中文翻译后的书名也都没什么联系,但是英文书名都有一个词——effective。公司也在倡导高效会议、提高工作效率。原来我们一直在学习的内容,和追求的目标,用一个单词符号就可以概括——effective。
《高效能人士的七个习惯-The 7 Habits of Highly Effective People》
曾经有一位老大哥说过,不用掌握七个习惯,看这本书只要把一个习惯做好,就能够超过大多数人。该书是美国的畅销书,在全球总共发行超过一亿册。甚至还有漫画版和缩略版供人学习。也有专业机构讲授的课程,一节课几万块。
七个习惯分别是:积极...
企业是组织众多个人开展经济活动的一种方式。企业在现代汉语中的基本用法,主要指独立的盈利性组织,并可进一步分为公司和非公司企业,后者如合伙企业、个人独资企业、个体工商户等。在20世纪后期中国大陆改革开放与现代化建设,以及信息技术领域新概念大量涌入的背景下,“企业”一词的用法有所变化,并不限于商业性或盈利组织。
维基百科关于企业的定义,是开展经济活动的一种方式。定义比较抽象,下面会通过一些通俗的解释,对企业有更深刻的了解。能够让我们在企业中,工作得更明确。
企业是科技发展的产物企业是近代才有的,古代是没有的。古代即使有,和现代也有很多不同。
在中国古代,社会排序是「士农工商」。和企业沾边...
前面两篇文章讲了个人篇如何高效工作。通过学习硬件篇和软件篇的方法,可以达到个人高效。但软件开发是一个团队合作的工作。涉及到产品经理,开发,运维等多种角色合作。需要整个团队整体配合,执行一致,才能达到高效工作。就像一个足球队,只有一名队员技术强,甚至每个球员技术强,都是不够的,还需要各个角色配合好才能取得成绩。
要团队整体高效,个人高效是前提,之后制定好团队合作的标准,让每个人都按照标准来执行。同时作为团队中的一员,要具有同理心,能换位思考,做事靠谱,不要给别人添麻烦。能做到这些,不管这个团队从事什么工作,都是能做到高效的。
制定标准国际上制定好USB接口标准,确定尺寸,电压,连接线路应该...
前言如何高效工作?对于每个想在工作中取得成就的人来说,都会问自己这个问题。之前公司也讨论过这个话题,觉得还是很重要的。这里介绍一些方法,希望能够对大家的高效工作有些帮助。
主要分为两部分,个人和团队。涉及到三篇文章。个人——硬件篇、个人——软件篇、团队篇。
要高效,我们要先从个人做起,把自身的效率提高,达到局部效率最大化。但是现在的工作都是团队,一个人强不行,还要整体强,都像一个目标出发才行。所以在团队层面要有好的规章制度,保证整体的效率最大化。就像现在的全球化,一件物品要全世界成千上万家工厂生产,最终才能合成一件衣服或者一支铅笔。每个环节都有严格的标准和流程,才能保证整体正常。在我们的...
在上一篇《如何高效工作——个人硬件篇》介绍了硬件层面提高的方法。即通过加快操作熟练性,升级办公用具的方法,提高工作执行速度。本质工作的流程和步骤不变,但是执行时间缩短。今天说的软件篇,里面介绍的方法,是优化工作执行的方式,让事情的解决效率,有指数级的提升。就像你用快速排序和用冒泡排序相比,优化了算法复杂度,排序速度有量级的提升。
具体到各行各业的工作,有很多和工作内容相关联的方法。在此提一些通用的方法,如果做到了,能够一通百通,轻松应对各种工作,对生活的效率也有提高。
软件篇的方法,就像软件之于计算机一样。会改变你的认知和对做事的想法,从根本上提升效率。
时间管理时间对每个人都是公平的,...
无论是哪种程序员,日常开发中都离不开记日志。但是通过最近的review会,发现很多程序员在记日志的时候,还是会有些问题。那么如何科学地记录日志呢?
为什么要记日志在寻求方法前,我们先看看我们记日志的目标。
日志是程序运行时的x光,能够追踪到程序运行的状态,通过日志,程序员能够加速调试速度,还原异常情况出现的场景。
也有通过日志记录处理数据,方便后面统计和审计。
还有通过日志进行备份,当数据有问题时,通过日志恢复数据。
总之,我们记日志,是为了给人看,来了解程序运行的状态。今天我们只讲日常调试和发现异常的场景。
日志记录什么内容既然日志是给人看的,就要让人能读懂,给出足够的信息。要带有上下...