摘要: 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入:grid = [ ["1","1","1","1","0"], [" 阅读全文
posted @ 2021-05-23 23:49 icyyyy 阅读(77) 评论(0) 推荐(0)
摘要: 题目:给定一个整型数组 arr和一个整数 k(k>1)。已知 arr中只有 1 个数出现一次,其他的数都出现 k 次。请返回只出现了 1 次的数。思路: 代码: 1 /** 2 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 3 * 4 * 5 * @param arr 阅读全文
posted @ 2021-05-23 23:48 icyyyy 阅读(303) 评论(0) 推荐(0)
摘要: 题目:给定一个整数数组nums,按升序排序,数组中的元素各不相同。nums数组在传递给search函数之前,会在预先未知的某个下标 t(0 <= t <= nums.length-1)上进行旋转,让数组变为[nums[t], nums[t+1], ..., nums[nums.length-1], 阅读全文
posted @ 2021-05-23 23:36 icyyyy 阅读(217) 评论(0) 推荐(0)
摘要: 题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树。平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 思路:后续遍历二叉树。 阅读全文
posted @ 2021-05-23 16:33 icyyyy 阅读(138) 评论(0) 推荐(0)
摘要: 题目:从0,1,2,...,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小 思路: 代码: 1 /** 2 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 3 * 4 * 找缺失数字 5 * @param a int整型一维数组 给定的数字 阅读全文
posted @ 2021-05-23 16:26 icyyyy 阅读(73) 评论(0) 推荐(0)
摘要: 题目:已知一个背包最多能容纳物体的体积为V。现有n个物品第i个物品的体积为vi​ 第i个物品的重量为wi​。求当前背包最多能装多大重量的物品 说明:第一个物品的体积为1,重量为3,第二个物品的体积为10,重量为4。只取第二个物品可以达到最优方案,取物重量为4 思路: 代码: 1 /** 2 * 代码 阅读全文
posted @ 2021-05-23 16:11 icyyyy 阅读(98) 评论(0) 推荐(0)
摘要: 题目:一个机器人在m×n大小的地图的左上角(起点)。机器人每次向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点? 备注:m和n小于等于100,并保证计算结果在int范围内 思路: 代码: 1 var memo = []; 2 for(let i = 0; i < 阅读全文
posted @ 2021-05-23 16:01 icyyyy 阅读(127) 评论(0) 推荐(0)
摘要: 题目:给定一个无序数组arr, 其中元素可正、可负、可0。给定一个整数k,求arr所有子数组中累加和为k的最长子数组长度 思路:前缀和+哈希map 代码: 1 /** 2 * @param {number[]} nums 3 * @param {number} k 4 * @return {numb 阅读全文
posted @ 2021-05-23 13:27 icyyyy 阅读(116) 评论(0) 推荐(0)
摘要: 题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。你可以假设数组是非空的,并且给定的数组总是存在多数元素。1<=数组长度<=50000 思路: 代码: 1 阅读全文
posted @ 2021-05-23 12:28 icyyyy 阅读(55) 评论(0) 推荐(0)
摘要: 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。 1.栈 遍历给定的字符串s。当我们遇到一个左括号时,我们会期望在后续 阅读全文
posted @ 2021-05-23 11:48 icyyyy 阅读(123) 评论(0) 推荐(0)
摘要: 题目:现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。有如下规则: 1. A为1,J为11,Q为12,K为13,A不能视为142. 大、小王为 0,0可以看作任意牌3. 如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。例如:给出数据[6 阅读全文
posted @ 2021-05-23 10:53 icyyyy 阅读(992) 评论(0) 推荐(0)
摘要: 题目:给定一个数组arr,返回子数组的最大累加和。例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12. 题目保证没有全为负数的数据 要求:时间复杂度为O(n),空间复杂度为O(1) 思路: 代码: 1 /* 阅读全文
posted @ 2021-05-23 10:16 icyyyy 阅读(62) 评论(0) 推荐(0)
摘要: 题目:给定一个二叉树和一个值sum,判断是否有从根节点到叶子节点的节点值之和等于sum 的路径,例如:给出如下的二叉树,sum=22 返回true,因为存在一条路径5→4→11→2的节点值之和为 22 思路:回溯算法是深度优先搜索的一种 代码: 1 /* 2 * function TreeNode( 阅读全文
posted @ 2021-05-23 09:50 icyyyy 阅读(157) 评论(0) 推荐(0)
摘要: 题目:给出两个有序的整数数组 和 ,请将数组 合并到数组 中,变成一个有序的数组注意:可以假设 数组有足够的空间存放 数组的元素, 和 中初始的元素数目分别为 和 思路: 代码: 1 /** 2 * 3 * @param A int整型一维数组 4 * @param B int整型一维数组 5 * 阅读全文
posted @ 2021-05-23 09:28 icyyyy 阅读(51) 评论(0) 推荐(0)
摘要: 题目:删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为1\to1\to21→1→2,返回1 \to 21→2.给出的链表为1\to1\to 2 \to 3 \to 31→1→2→3→3,返回1\to 2 \to 31→2→3. 提示: 链表中节点数 阅读全文
posted @ 2021-05-23 01:26 icyyyy 阅读(131) 评论(0) 推荐(0)
摘要: 题目:给定一个无序单链表,实现单链表的排序(按升序排序) 思路: 代码: 1 /* 2 * function ListNode(x){ 3 * this.val = x; 4 * this.next = null; 5 * } 6 */ 7 8 /** 9 * 10 * @param head Li 阅读全文
posted @ 2021-05-23 01:23 icyyyy 阅读(147) 评论(0) 推荐(0)
摘要: 题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型 思路: 栈1:用于入队列存储 栈2:出队列时将栈1的数据依次出栈,并入栈到栈2中。栈2出栈即栈1的底部数据即队列要出的数据。 注意:栈2为空才能补充栈1的数据,否则会打乱当前的顺序。 代码: 1 var sta 阅读全文
posted @ 2021-05-23 00:14 icyyyy 阅读(118) 评论(0) 推荐(0)