08 2018 档案
摘要:今天的题目如下: 这道题目是给出n对圆括号,写一个函数去生成由所有合法匹配的组合生成的数组。 首先想到的是将所有的组合罗列出来,并分别校验组合是否合法,但是这种方法可能就会导致比较不好的时间复杂度了。那么就要想想什么情况会是合法的确情况了。 假设左括号数为 lnum, 右括号数为 rnum ,如果左
阅读全文
摘要:经历了昨天中等难度题目的考验后,今天大脑要歇一歇,于是就选了一题比较容易的,也或者说是昨天题目的简化版本, 如题: 输入一个数组,并找出数组中出现频率最大的那个数。而且不像昨天那题那样有时间复杂度的限制,不过自己的方法还是跟题目 347. Top K Frequent Elements 类似, 权当
阅读全文
摘要:第五题,开始刷中等难度的题目,题目如下: 按照题目,要求找出输入数组中前k个出险频率最高的数字,同时要求时间复杂度要比 O(n log n) 好。 这题的难度主要是限定了时间的复杂度,这样的话,想到一个使用Map的方法,但是Map方法也需要对数组遍历一次,时间复杂度 O(n) 是否比 O(n log
阅读全文
摘要:今天的题目是实现不使用 加 或 减 运算符来实现数字相加。不使用这些运算符号来实现加减,那么就只能用位运算了来实现了。 那么该如何实现呢?位运算的使用方法一直没有很好地学习,只能上网搜一下了。最后参考了一下这篇文章: https://www.jianshu.com/p/c8a0ed93dba4 代码
阅读全文
摘要:今天是第四题,也是简单题一道,再来几道题目估计就要开始进军中级难度的了。题目如下: 这道题是要将所有的0移动到数组的末尾,并且要保持原来非零整数的原有顺序。想到的方法就是遍历数组,并用非零整数覆盖0。代码如下: 看了一下答案,还可以用下面的方法: 这种方法原理跟第一种差不多,不过代码更加简化了。
阅读全文
摘要:吼吼吼,今天进行第三条的程序练习,题目如下: 数组中除了一个数字,其他数字都是成双的,现在要找出这个单个的数字是什么。啥?人群中成双的一大把,就剩一个单身狗?还要告诉世人哪个才是?这题目有毒。 继续往下看,要求时间复杂度是线性,而且还建议不用额外的存储量。 首选的最简单的方法可能就是先将数组排序,然
阅读全文
摘要:今天是开始用JavaScript刷LeetCode的第二天。题目如下: 题意是输出一个1到n的数组,遇到3的倍数用“Fizz”代替,遇到5的倍数用“Buzz”代替,遇到15的倍数则用“FizzBuzz”来代替。 这题目比较简单呀,直接用if-else if-else的条件判断语句来完成不就好了嘛。于
阅读全文
摘要:开始尝试用JavaScript来刷LeetCode,对前端又白又菜,那这次刷题就直接叫白菜的刷LeetCode旅程了。 今天的题目是很简单的字符串首尾交换,题目如下: 一开始自己的代码如下: 当然这样做得到的结果是错误的,输出的结果跟原来一样,也就是“hello”经过自己代码后还是"hello"。
阅读全文