随笔分类 -  算法

上一页 1 ··· 3 4 5 6 7
摘要:给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 进阶:你可以实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案吗? 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-missing-positi 阅读全文
posted @ 2021-02-24 23:27 小千北同学超爱写代码 阅读(82) 评论(0) 推荐(0)
摘要:给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。 找到所有出现两次的元素。 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗? 来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl 阅读全文
posted @ 2021-02-24 22:40 小千北同学超爱写代码 阅读(117) 评论(0) 推荐(0)
摘要:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。 找到所有在 [1, n] 范围之间没有出现在数组中的数字。 您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。 来 阅读全文
posted @ 2021-02-24 21:33 小千北同学超爱写代码 阅读(63) 评论(0) 推荐(0)
摘要:给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/de 阅读全文
posted @ 2021-02-24 20:42 小千北同学超爱写代码 阅读(74) 评论(0) 推荐(0)
摘要:集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/set-mismatch 阅读全文
posted @ 2021-02-24 20:22 小千北同学超爱写代码 阅读(64) 评论(0) 推荐(0)
摘要:给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积 错解: class Solution: def maximumProduct(self, nums: List[int]) -> int: max1=max2=max3=float('-inf')#定义正数为负无穷,保 阅读全文
posted @ 2021-02-24 20:05 小千北同学超爱写代码 阅读(86) 评论(0) 推荐(0)
摘要:题目: 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。 你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。 来源:力扣(Leet 阅读全文
posted @ 2021-02-22 20:23 小千北同学超爱写代码 阅读(75) 评论(0) 推荐(0)
摘要:题目:给定一个二进制数组, 计算其中最大连续 1 的个数。 错解: class Solution: def findMaxConsecutiveOnes(self, nums: List[int]) -> int: maxcount=0 count=0 for i in nums: if i==1: 阅读全文
posted @ 2021-02-22 19:36 小千北同学超爱写代码 阅读(77) 评论(0) 推荐(0)
摘要:题目一 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 这道题考的是二分法,二分明早再来复盘一下 错误答案: 这是我的错误答案,有好几处 ❤:if...elif 阅读全文
posted @ 2021-02-20 00:25 小千北同学超爱写代码 阅读(42) 评论(0) 推荐(0)
摘要:一、问题描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数) 二、代码实现 class Solution: def FirstNotRepeatingChar(self, s): 阅读全文
posted @ 2021-02-04 19:27 小千北同学超爱写代码 阅读(46) 评论(0) 推荐(0)
摘要:一、问题描述 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n). 二、代码实现 对第一个数进行判断,大于0才开始计入。 主要思想动态规划,就是如果前一个数大于0,那么就加上。 class Solution: def 阅读全文
posted @ 2021-02-04 19:02 小千北同学超爱写代码 阅读(94) 评论(0) 推荐(0)
摘要:一、问题 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0 二、代码实现 class Solution: def MoreThanHalfN 阅读全文
posted @ 2021-02-04 18:10 小千北同学超爱写代码 阅读(66) 评论(0) 推荐(0)
摘要:一、问题描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 二、代码实现: class Solution: def Sum_Solution(self, n): if n ==0: return 0 e 阅读全文
posted @ 2021-02-04 17:15 小千北同学超爱写代码 阅读(65) 评论(0) 推荐(0)
摘要:一、问题描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 二、代码实现 class Solution: def TreeDepth(self, pRoot): if pRoot is None: return 0 coun 阅读全文
posted @ 2021-02-04 17:04 小千北同学超爱写代码 阅读(42) 评论(0) 推荐(0)
摘要:一、问题描述 将源二叉树转换成镜像二叉树,主要是左右节点互换 二、代码实现: class Solution: def Mirror(self, root): # write code here if not root: return root root.left,root.right=root.ri 阅读全文
posted @ 2021-02-04 16:58 小千北同学超爱写代码 阅读(31) 评论(0) 推荐(0)
摘要:一、问题分析 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。如输入{1,3,5},{2,4,6},输出{1,2,3,4,5,6} 首先比较两个链表的头节点,如果表1的头节点更小,那么就固定表1的头节点,接下来关注表1的next部分; 表1的next部分的 阅读全文
posted @ 2021-02-04 16:51 小千北同学超爱写代码 阅读(52) 评论(0) 推荐(0)
摘要:一、问题描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 二、问题分析 假设现在已经跳到了第 n 个台阶,那么前一步可以从哪些台阶到达呢? 如果上一步跳 1 步到达第 n 个台阶,说明上一步在第 n-1 个台阶。已知跳到第n-1个台 阅读全文
posted @ 2021-02-04 16:26 小千北同学超爱写代码 阅读(88) 评论(0) 推荐(0)
摘要:一、旋转数组 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转,例如[45123]就是[12345]的一个旋转。 二、题目分析 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 先考虑递增数组的旋转,如[12345]的一个旋转[45123],可以知道旋转过后可以分成两组数 阅读全文
posted @ 2021-02-04 16:02 小千北同学超爱写代码 阅读(83) 评论(0) 推荐(0)
摘要:一、栈和队列 栈的思想:先进后出,所以在python里用append()和pop()就能实现栈的push压入和pop弹出了。append每次在列表的后面添加一个元素,pop每次弹出列表的最后一个元素,做到了先进后出。 队列的思想:先进先出。 所以要用栈来实现队列的思想如下: 1.如果列表A不为空,假 阅读全文
posted @ 2021-02-04 14:51 小千北同学超爱写代码 阅读(69) 评论(0) 推荐(0)
摘要:一、斐波那契数列定义: 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、…… 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*) 即一个数等于前两个数之和。 二、pyt 阅读全文
posted @ 2021-02-03 11:43 小千北同学超爱写代码 阅读(79) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7