- 博客(11)
- 收藏
- 关注
原创 leecode的初级算法之删除链表的倒数第N个节点
一、题目讲述请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。现有一个链表 – head = [4,5,1,9],它可以表示为: 二、思路讲解这道题,我一定要吐槽,这套题有地方天坑,就是传递的参数只有一个。为什么呢?我看了半天题目,我们要删除制定节点,起码不是第一个吧。结果他的答案只要删除一个节点就算过。吐血。。。。三、核心代码/** * Definition for singly-linked list. * function List
2020-11-13 21:52:07 118
原创 leecode的初级算法之删除链表中的节点
一、题目讲述请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。现有一个链表 – head = [4,5,1,9],它可以表示为: 二、思路讲解这道题,我一定要吐槽,这套题有地方天坑,就是传递的参数只有一个。为什么呢?我看了半天题目,我们要删除制定节点,起码不是第一个吧。结果他的答案只要删除一个节点就算过。吐血。。。。三、核心代码/** * Definition for singly-linked list. * function List
2020-11-13 21:41:54 114
原创 每日一题之 奇偶链表
一、题目讲述给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。二、思路讲解按照题意,我们只有O(1)的空间记录变量,和循环一遍链表的时间。很简单只要把,一个变量存奇数链表,一个变量存偶数链表,还有一个存储偶数链表头。循环思路:head为单数,head.next为偶数,接着head.next.n
2020-11-13 21:28:31 123
原创 每日一题之 买卖股票的最佳时机 II
一、题目讲述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。二、思路讲解根据题意,我们可以多次买卖,并且只需要考虑一直股票的情况。于是我们即买即卖,赚了就买卖,不赚就走。所以代码,只要判断前后两个数形成一个区间,区间赚了,就记住利润,没有就换下。三、核心代码/** * @param {number[]} price
2020-11-08 11:00:47 141 1
原创 每日一题之 有效的山脉数组
一、题目讲述给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < … A[i-1] < A[i]A[i] > A[i+1] > … > A[A.length - 1]二、思路讲解本题的思路,就是线性判断,数组判断一
2020-11-03 22:09:38 114
原创 每日一题之两个数组的交集
一、题目讲述给定两个数组,编写一个函数来计算它们的交集。二、思路讲解本题的思路,就是暴力破解,然后通过一个json来判断是否重复三、核心代码/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number[]} */var intersection = function(nums1, nums2) { var json = {}; var arr = new Array(); for
2020-11-02 21:50:51 97
原创 每日一题之岛屿的周长
一、题目讲述给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。二、思路讲解本题的思路,就是暴力破解,把全部元素判断一边,返回总数三、核心代码/** 岛屿的周长 *
2020-10-30 16:25:47 119
原创 每日一题之求根到叶子节点数字之和
一、题目讲述给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。二、思路讲解嗯嗯,本题用递归就可以解决三、核心代码/** 求根到叶子节点数字之和 * @param {TreeNode} root * @return {number} */var sumNumbers = function(roo
2020-10-29 22:08:04 87
原创 每日一题之独一无二的出现次数
一、题目讲述给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。二、思路讲解总的来说,今天的题目很简单,分两步,记录,和判断就可以了。通过两个json对象来实现,一个json对象记录重复的数。一个json对象判断是否重复。三、核心代码/** 独一无二的出现次数 * @param {number[]} arr * @return {boolean} */var uniqueOccurrences =
2020-10-28 10:13:31 124
原创 每日一题之二叉树的前序遍历
一、核心代码如下/** 144. 二叉树的前序遍历 * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : rig
2020-10-27 21:45:59 331
原创 每日一题之有多少小于当前数字的数字
一、核心代码如下/**有多少小于当前数字的数字 * @param {number[]} nums * @return {number[]} */var smallerNumbersThanCurrent = function(nums) { //加数解法 //假设nums 最大的数为100;建立一个长度为100的数组 var arr = new Array(100).fill(0); //遍历nums 把nums中的元素加入 arr 中 for(var i
2020-10-26 10:24:30 91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人