- 博客(68)
- 收藏
- 关注
转载 白菜刷LeetCode记-704. Binary Search
简单题,直接是用来复习二分查找的。题目如下:代码如下:/** * @param {number[]} nums * @param {number} target * @return {number} */var search = function(nums, target) { let len = nums.length; let ...
2018-11-09 21:03:00
85
转载 白菜刷LeetCode记-69.Sqrt(x)
这几天都比较忙,那就刷简单题来保持习惯吧,今天的也是二分查找的题目。当然完全没有想到用二分法的方法不断地逼近答案,感觉大学的数值计算方法这门课白学了,代码如下:/** * @param {number} x * @return {number} */var mySqrt = function(x) { let lp = 1 , rp = x;...
2018-11-07 21:53:00
111
转载 白菜刷LeetCode记-240.Search a 2D Matrix II
今天是一道中等题目,题目如下:第一种想到的办法是遍历每一行,每一行使用二分查找的方法进行搜索,代码如下:/** * @param {number[][]} matrix * @param {number} target * @return {boolean} */var searchMatrix = function(matrix, target...
2018-11-06 22:10:00
81
转载 白菜刷LeetCode记-811.Subdomain Visit Count
好久没有写LeetCode,所以说坚持真的是一件很难的事情啊。今日重新开始吧,先来一道简单的题目,如下:这道题首先想到的还是使用Map,代码如下:/** * @param {string[]} cpdomains * @return {string[]} */var subdomainVisits = function(cpdomains) {...
2018-11-05 19:31:00
120
转载 白菜刷LeetCode记-258. Add Digits
做题有点倦了,准备将注意力放在其他技术方面。今天的题目如下:个人答案如下: 1 /** 2 * @param {number} num 3 * @return {number} 4 */ 5 var addDigits = function(num) { 6 if( parseInt(num / 10) == 0){ 7 ...
2018-10-11 11:11:00
64
转载 白菜刷LeetCode记-191. Number of 1 Bits
今天的题目如下:这道题目一开始想到的是通过整数除以2,如果余数为1的话,就增加 ‘1’ 的数目。代码如下: 1 /** 2 * @param {number} n - a positive integer 3 * @return {number} 4 */ 5 var hammingWeight = function(n) { 6 ...
2018-10-09 09:03:00
50
转载 白菜刷LeetCode记-326. Power of Three
今天是国庆回来后第一天假期,七天没刷LeetCode了,今天就来一道比较简单的题目。代码如下: 1 /** 2 * @param {number} n 3 * @return {boolean} 4 */ 5 var isPowerOfThree = function(n) { 6 if(n < 1){ 7 re...
2018-10-08 09:09:00
56
转载 白菜刷LeetCode记-49. Group Anagrams
这次是一个中等难度的题目,题目如下:代码如下:/** * @param {string[]} strs * @return {string[][]} */var groupAnagrams = function(strs) { let res = new Array(); let myArr = new Array(); le...
2018-09-30 10:22:00
148
转载 白菜刷LeetCode记-118. Pascal's Triangle
今天的题目比较有趣,是构建Pascal's Triangle, 题目如下:代码如下:/** * @param {number} numRows * @return {number[][]} */var generate = function(numRows) { let res = new Array(); if(n...
2018-09-29 09:50:00
45
转载 白菜刷LeetCode记-215. Kth Largest Element in an Array
今天题目如下:这题目比较简单,代码如下: 1 /** 2 * @param {number[]} nums 3 * @param {number} k 4 * @return {number} 5 */ 6 var findKthLargest = function(nums, k) { 7 8 nums.sort((...
2018-09-28 09:17:00
40
转载 白菜刷LeetCode记-121. Best Time to Buy and Sell Stock
今天这道题也有点糊里糊涂的,题目如下:这道题的意思是求出最大的收益,但是只能交易一次。可以想到的是使用双层循环来解决这个问题,但是是否有一次遍历的方法呢?代码如下:/** * @param {number[]} prices * @return {number} */var maxProfit = function(prices) { le...
2018-09-27 10:20:00
61
转载 白菜刷LeetCode记-103. Binary Tree Zigzag Level Order Traversal
今天的题目是对昨天题目的加深印象,题目如下:有了昨天的答案,今天做得就比较轻松了,代码如下: 1 /** 2 * Definition for a binary tree node. 3 * function TreeNode(val) { 4 * this.val = val; 5 * this.left = this.ri...
2018-09-26 11:32:00
55
转载 白菜刷LeetCode记-102. Binary Tree Level Order Traversal
中秋假期回来,个人还没有进入状态呢,题目看着有思路,但是却写不出来,题目如下:这一题是考量广度优先遍历,这还是第一次遇到广度优先遍历的题目,想了许久,结果只能看答案了,诀窍就是定义一个参数用来记录层数。代码如下:/** * Definition for a binary tree node. * function TreeNode(val) {...
2018-09-25 10:31:00
180
转载 白菜刷LeetCode记-350. Intersection of Two Arrays II
今天题目如下:比较简单,代码如下:/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number[]} */var intersect = function(nums1, nums2) { let myMap = new Map(); let ...
2018-09-21 09:51:00
64
转载 白菜刷LeetCode记-268. Missing Number
今天的题目是一道简单题,如下:这道题真的很简单了,代码如下:/** * @param {number[]} nums * @return {number} */var missingNumber = function(nums) { let n = nums.length; let sum1 = (0 + n)*(n+1)/...
2018-09-20 09:38:00
55
转载 白菜刷LeetCode记-378. Kth Smallest Element in a Sorted Matrix
简单题真的越来越少了,今天的还是中等难度的题目,不过自己也要改一下自己的心态了,不能因为是中等题就瑟瑟发抖。今天的题目如下:这道题是要寻找矩阵中第k个小的元素的值,在矩阵中的每一行跟每一列是递增的。看到题目是说矩阵中每一行每一列都是递增的,那么应该有一个能够仅仅通过在矩阵上比较大小就可以获取第k个小的值啊。结果思考了很久都没有找到方案,在网上找了一下答案,似乎都是用将...
2018-09-19 11:16:00
134
转载 白菜刷LeetCode记-328. Odd Even Linked List
发现简单题越来越少了,想偷懒都不可以了,今天的题目是中等难度的题目,题目如下:这个题目是要根据链表的位置来修改链表,位置为奇数的节点全部排到前面,位置为偶数的节点全部排到奇数的后面,并且保持顺序不变。想到的解决步骤为:1、遍历数组,奇数的位置的节点组成一条新链表,偶数位置的节点组成另一个新链表;2、将偶数链表接在奇数链表后面。代码如下: 1 /...
2018-09-18 12:39:00
141
转载 白菜刷LeetCode记-230. Kth Smallest Element in a BST
今天的题目如下:这题目是要找出二叉搜索树第k个小的节点并返回其值。那么首先就要看看什么是二叉搜索树。二叉搜索树的特征如下:1、所有非叶子节点至多拥有两个儿子;2、所有节点存储一个关键字;3、非叶子节点的左边指针指向小于其关键字的子树,右边指向大于其关键字的子树。根据上面的特征,我们使用中序遍历树就可以了,代码如下:/** * Definition...
2018-09-17 15:23:00
48
转载 白菜刷LeetCode记-387. First Unique Character in a String
今天的题目也是一道简单题目,题目如下:一看到这题就知道应该用Map这个数据结构了。代码如下: 1 /** 2 * @param {string} s 3 * @return {number} 4 */ 5 var firstUniqChar = function(s) { 6 let myMap = new Map(); 7 ...
2018-09-14 15:09:00
100
转载 白菜刷LeetCode记-384. Shuffle an Array
今天早上是一道中等难度的题目,考的是洗牌算法。个人对洗牌算法还是比较不熟悉的,因此是看答案的。参考链接为: https://www.jianshu.com/p/44100741cef5基本思路为:1) 将第一个元素与 n 个元素中的任意一个交换;2) 将第二个与 n - 1 个元素进行交换;3) 重复上述步骤,直到剩下1个元素。代码如下: 1 v...
2018-09-13 11:50:00
56
转载 白菜刷LeetCode记-202. Happy Number
这个才是今天的题目,题目如下:根据题目,当最后得出的结果是1, 那么输入的数是 Happy Number, 如果在推理过程中,出现之前出现的而且不是 1 的结果,那么就意味着推理陷入了死循环,那么输入的数就不是 Happy Number。 根据这个思路,我们可以得出代码如下:/** * @param {number} n * @return {boolean}...
2018-09-12 20:07:00
184
转载 白菜刷LeetCode记-454. 4Sum II
昨天太忙,今天补上这一题。题目如下:首先能够想到的就是使用比较暴力的方法,通过四层循环去找到结果,但是这种结果肯定是超时的,想了好久都没想到,在网上找到了使用map实现的方法。代码如下: 1 /** 2 * @param {number[]} A 3 * @param {number[]} B 4 * @param {number[]} C 5 *...
2018-09-12 19:10:00
70
转载 白菜刷LeetCode记-217. Contains Duplicate
今天刷的也是简单题,题目如下:这道题目是要看数组中是否有重复的数字,首先想到的办法就是先将数组排序,然后再遍历数组,看看是否有重复项。 1 /** 2 * @param {number[]} nums 3 * @return {boolean} 4 */ 5 var containsDuplicate = function(nums) { 6 ...
2018-09-10 12:04:00
59
转载 白菜刷LeetCode记-242. Valid Anagram
今天周五啦,又可以歇一会了。今天的题目如下:这一题就是要判断字符串 t 是否为 s 的打乱版。在题目 344. Reverse String 的启发下,比较简单,代码如下:/** * @param {string} s * @param {string} t * @return {boolean} */var isAnagram = function(...
2018-09-07 11:55:00
56
转载 白菜刷LeetCode记-237. Delete Node in a Linked List
今天题目如下:这题目很简单,仅仅是删除单链表中节点,而且想不到的时候题目并不需要你首先遍历链表获取要删除节点的位置,因为函数参数就是那个节点,代码如下: 1 /** 2 * Definition for singly-linked list. 3 * function ListNode(val) { 4 * this.val = val;...
2018-09-06 11:22:00
59
转载 白菜刷LeetCode记-122. Best Time to Buy and Sell Stock II
今天题目如下:要求出最大的利益。这题个人不太想得通,看了答案也不太知道为什么这样能获得最大值。代码如下: 1 /** 2 * @param {number[]} prices 3 * @return {number} 4 */ 5 var maxProfit = function(prices) { 6 let maxp = 0; 7...
2018-09-05 12:03:00
120
转载 白菜刷LeetCode记-206. Reverse Linked List
今天的题目如下:这道题是要求将一个链表反转,比较简单,代码如下: 1 /** 2 * Definition for singly-linked list. 3 * function ListNode(val) { 4 * this.val = val; 5 * this.next = null; 6 * } 7 */...
2018-09-04 09:24:00
40
转载 白菜刷LeetCode记-46. Permutations
今天这一题也是中等难度,题目如下:这一题是要实现数组的全排列。这一题是要使用遍历以及递归的思想去实现,代码如下: 1 /** 2 * @param {number[]} nums 3 * @return {number[][]} 4 */ 5 var permute = function(nums) { 6 var res = new A...
2018-09-03 20:38:00
61
转载 白菜刷LeetCode记-22. Generate Parentheses
今天的题目如下:这道题目是给出n对圆括号,写一个函数去生成由所有合法匹配的组合生成的数组。首先想到的是将所有的组合罗列出来,并分别校验组合是否合法,但是这种方法可能就会导致比较不好的时间复杂度了。那么就要想想什么情况会是合法的确情况了。假设左括号数为 lnum, 右括号数为 rnum ,如果左括号数目比右括号数目多的话,那么组合还是有可能合法的,反之,组合就是不合法...
2018-08-31 15:47:00
52
转载 白菜刷LeetCode记-169. Majority Element
经历了昨天中等难度题目的考验后,今天大脑要歇一歇,于是就选了一题比较容易的,也或者说是昨天题目的简化版本,如题:输入一个数组,并找出数组中出现频率最大的那个数。而且不像昨天那题那样有时间复杂度的限制,不过自己的方法还是跟题目 347. Top K Frequent Elements 类似,权当是复习一遍知识点了。 1 /** 2 * @param...
2018-08-30 10:46:00
87
转载 白菜刷LeetCode记-347. Top K Frequent Elements
第五题,开始刷中等难度的题目,题目如下:按照题目,要求找出输入数组中前k个出险频率最高的数字,同时要求时间复杂度要比 O(n log n) 好。这题的难度主要是限定了时间的复杂度,这样的话,想到一个使用Map的方法,但是Map方法也需要对数组遍历一次,时间复杂度 O(n) 是否比 O(n log n) 好呢?下面贴出时间复杂度的排序(来源于《数据结构与算法经典...
2018-08-29 15:37:00
79
转载 白菜刷LeetCode记-371. Sum of Two Integers
今天的题目是实现不使用 加 或 减 运算符来实现数字相加。不使用这些运算符号来实现加减,那么就只能用位运算了来实现了。那么该如何实现呢?位运算的使用方法一直没有很好地学习,只能上网搜一下了。最后参考了一下这篇文章:https://www.jianshu.com/p/c8a0ed93dba4代码如下: 1 /** 2 * @param {numbe...
2018-08-27 10:23:00
74
转载 白菜刷LeetCode记-283. Move Zeroes
今天是第四题,也是简单题一道,再来几道题目估计就要开始进军中级难度的了。题目如下:这道题是要将所有的0移动到数组的末尾,并且要保持原来非零整数的原有顺序。想到的方法就是遍历数组,并用非零整数覆盖0。代码如下:/** * @param {number[]} nums * @return {void} Do not return anything, modify...
2018-08-24 15:36:00
67
转载 白菜刷LeetCode记-136. Single Number
吼吼吼,今天进行第三条的程序练习,题目如下:数组中除了一个数字,其他数字都是成双的,现在要找出这个单个的数字是什么。啥?人群中成双的一大把,就剩一个单身狗?还要告诉世人哪个才是?这题目有毒。继续往下看,要求时间复杂度是线性,而且还建议不用额外的存储量。首选的最简单的方法可能就是先将数组排序,然后遍历数组,然后识别出那个旁边没有跟自己一样的数,那个数就是结果了。...
2018-08-23 16:36:00
63
转载 白菜刷LeetCode记-412. Fizz Buzz
今天是开始用JavaScript刷LeetCode的第二天。题目如下:题意是输出一个1到n的数组,遇到3的倍数用“Fizz”代替,遇到5的倍数用“Buzz”代替,遇到15的倍数则用“FizzBuzz”来代替。这题目比较简单呀,直接用if-else if-else的条件判断语句来完成不就好了嘛。于是便有如下答案: 1 /** 2 * @param {number}...
2018-08-22 14:35:00
91
转载 白菜刷LeetCode记-344. Reverse String
开始尝试用JavaScript来刷LeetCode,对前端又白又菜,那这次刷题就直接叫白菜的刷LeetCode旅程了。今天的题目是很简单的字符串首尾交换,题目如下:一开始自己的代码如下: 1 /** 2 * @param {string} s 3 * @return {string} 4 */ 5 var reverseString ...
2018-08-21 21:27:00
70
转载 全面入坑前端
现状与相关决定: 毕业工作已经三年了,目前岗位是软件开发岗,但是自己平时工作的内容却是运维+硬件+开发,内容十分的琐碎。这样的工作并不能提供给自己一个良好的程序开发氛围,大部分的时间也被一些琐碎的事情占据了。个人感觉,在这种环境下无法让一个人能够有巨大的长进的。因此,找一个让自己能够专心做开发并且开发氛围良好的平台很重要,是时候挪坑了。挪坑之前,也需要决定一下自己要从事的...
2018-07-11 21:39:00
60
转载 221. Maximal Square
该题是要算出矩阵中由“1”构成正方形的区域面积。这个题目一开始想到的方法是遍历整个矩阵,每次遇到“1”, 检测从这个“1”开始是否构成正方形,检测方法是检测现有为“1”的区域的右边和下边的外围是否为“1”, 如果外围都是“1”的话,这些“1”就构成了新的正方形区域,然后继续检测新的区域外围是否都是“1”,用这个形式不断外推。最后获取最大正方形区域的面积。但是这个方法的时间复杂...
2018-05-15 10:04:00
60
转载 168. Excel Sheet Column Title
该题目是实际上是要将10进制转换为26进制。代码如下: 1 class Solution { 2 public String convertToTitle(int n) { 3 String res = new String(); 4 5 while( n != 0 ){ 6 ...
2018-05-11 09:50:00
88
转载 171. Excel Sheet Column Number
该题本质上是进制转换,在这里是26进制数转10进制。代码如下: 1 class Solution { 2 public int titleToNumber(String s) { 3 int res = 0; 4 if(s == null){ 5 return res; 6 ...
2018-05-10 08:53:00
60
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人