
算法
故心v
越努力越幸运
展开
-
剑指 Offer 39. 数组中出现次数超过一半的数字
故心故心故心故心小故冲啊 文章目录题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字,你可以假设数组是非空的,并且给定的数组总是存在多数元素。解法一:sort+Math.floor解法二:map 题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字,你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解法一:sort.原创 2021-01-05 12:27:29 · 74 阅读 · 0 评论 -
剑指 Offer 61. 扑克牌中的顺子
故心故心故心故心小故冲啊 文章目录题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。解法 题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1,2,3,4,5] 输出: True 示例 2: 输入: [原创 2021-01-04 13:29:22 · 73 阅读 · 0 评论 -
剑指 Offer 58 - I. 翻转单词顺序
故心故心故心故心小故冲啊 文章目录题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。解法一:逐步化解 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。 示例 1: 输入: “the sky is原创 2021-01-03 11:58:31 · 106 阅读 · 0 评论 -
剑指 Offer 53 - II. 0~n-1中缺失的数字
故心故心故心故心小故冲啊 文章目录题目:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。解法一:遍历循环判断解法二:二分查找 题目:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1: 输入: [0,1,3] 输出: 2 示例 2: 输入: [0,1,2,3,4原创 2020-12-30 15:14:19 · 69 阅读 · 0 评论 -
剑指 Offer 51. 数组中的逆序对
故心故心故心故心小故冲啊 文章目录题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。解法一:双for暴力解法(超出时间限制)解法二:归并排序(正确解法) 题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 解法一:双for暴力解法(超出时间限制) //计数 var cou原创 2020-12-28 12:56:25 · 86 阅读 · 0 评论 -
剑指 Offer 56 - II. 数组中数字出现的次数 II
系列文章目录 故心故心故心故心小故冲啊 文章目录系列文章目录题目:剑指 Offer 56 - II. 数组中数字出现的次数 II解法一:map解法二:indexOf与lastIndexOf解法 题目:剑指 Offer 56 - II. 数组中数字出现的次数 II 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 示例 1: 输入:nums = [3,4,3,3] 输出:4 示例 2: 输入:nums = [9,1,7,9,7,9,7] 输出:1 解法原创 2020-12-27 13:31:19 · 83 阅读 · 0 评论 -
剑指 Offer 64. 求1+2+…+n
故心故心故心故心小故冲啊 文章目录题目:求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。解法:递归 题目:求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 示例 1: 输入: n = 3 输出: 6 示例 2: 输入: n = 9 输出: 45 限制: 1 <= n <= 10000 解法:递归 本题麻烦的地原创 2020-12-24 12:26:35 · 98 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
故心故心故心故心小故冲啊 文章目录题目:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:解法一.for循环 题目:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(100000原创 2020-12-23 13:29:18 · 81 阅读 · 0 评论 -
剑指 Offer 45. 把数组排成最小的数
系列文章目录 故心故心故心故心小故冲啊 文章目录系列文章目录题目:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。解法一:自定义新的排序规则 题目:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: “102” 示例 2: 输入: [3,30,34,5,9] 输出: “3033459” 提示: 0 < nums.length <= 100 说明: 输出结果可能原创 2020-12-22 13:36:53 · 96 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解法一:flat扁平化与includes解法二:暴力破解法:双循环查找 题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺原创 2020-12-21 13:42:23 · 73 阅读 · 0 评论 -
剑指 Offer 53 - I. 在排序数组中查找数字
故心故心故心故心小故冲啊 文章目录题目:统计一个数字在排序数组中出现的次数。解法一:暴力破解过滤filter 题目:统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 限制: 0 <= 数组长度 <= 50000 解法一:暴力破解 var search = function(nums, target) {原创 2020-12-20 12:59:37 · 132 阅读 · 1 评论 -
剑指 Offer 22. 链表中倒数第k个节点
剑指 Offer 22. 链表中倒数第k个节点 故心故心故心故心小故冲啊 文章目录剑指 Offer 22. 链表中倒数第k个节点题目:解法一:快慢指针解法二:栈方法 题目: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2.原创 2020-12-19 16:14:33 · 74 阅读 · 1 评论 -
leetcode:剑指 Offer 56 - I. 数组中数字出现的次数
一个正在努力爱好运动的程序猿座右铭:越努力越幸运,越运动越健康,热爱编程,热爱运动。 记录学习算法这段日子。 文章目录题目一、解法一:set(利用不重复特性)二、解法二:lowbit(x)位运算 题目 一、解法一:set(利用不重复特性) /** * @param {number[]} nums * @return {number[]} */ var singleNumbers = function(nums) { var s = new Set(); var numbe.原创 2020-11-19 15:51:09 · 135 阅读 · 0 评论 -
leetcode:子集
子集 一个正在努力爱好运动的程序猿座右铭:越努力越幸运,越运动越健康,热爱编程,热爱运动。 记录学习算法这段日子。 文章目录子集题目一、reduce + map 题目 一、reduce + map /** * @param {number[]} nums * @return {number[][]} */ var subsets = function(nums) { return nums.reduce((total,num)=>total.concat(total.map(ite原创 2020-11-17 22:26:39 · 149 阅读 · 0 评论 -
leetcode:剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格 一个正在努力爱好运动的程序猿座右铭:越努力越幸运,越运动越健康,热爱编程,热爱运动。 记录学习算法这段日子。 文章目录剑指 Offer 05. 替换空格题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。一、解法一:正则二、解法二:indexof 题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = “We are happy.” 输出:“We%20are%20happy.” 限制: 0 <= s 的长度原创 2020-11-16 17:04:05 · 116 阅读 · 0 评论 -
leetcode:剑指 Offer 03. 数组中重复的数字
剑指 Offer 03. 数组中重复的数字 一个正在努力爱好运动的程序猿座右铭:越努力越幸运,越运动越健康,热爱编程,热爱运动。 记录学习算法这段日子。 文章目录剑指 Offer 03. 数组中重复的数字题目:找出数组中重复的数字一、解法一:sort+for二、解法二:set (忽略重复的属性)二、解法三:map(has的属性) 题目:找出数组中重复的数字 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复原创 2020-11-15 11:54:54 · 255 阅读 · 0 评论 -
leetcode:剑指 Offer 17. 打印从1到最大的n位数
剑指 Offer 17. 打印从1到最大的n位数 一个正在努力爱好运动的程序猿座右铭:越努力越幸运,越运动越健康,热爱编程,热爱运动。 记录学习算法这段日子。 文章目录剑指 Offer 17. 打印从1到最大的n位数题目:输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。解法一:普遍解法解法二:Array.from解法 题目:输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直原创 2020-11-14 15:37:48 · 268 阅读 · 0 评论