
算法
飞猫个人博客
飞猫博客!
展开
-
算法:合并两个有序链表的实现方案详解
法描述输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: 0≤n≤1000, −1000≤节点值≤1000要求:空间复杂度 O(1),时间复杂度 O(n)如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:阅读原文:原文链接...原创 2021-12-31 09:29:33 · 742 阅读 · 0 评论 -
算法:字符串数组中各个元素最长公共前缀的实现方案
算法描述:给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。数据范围: 0≤n≤5000, 0≤len(strs[i])≤5000进阶:空间复杂度 O(n),时间复杂度 O(n)示例1输入:["abca","abc","abca","abc","abcc"]返回值:"abc"阅读原文:原文链接...原创 2021-12-15 15:24:14 · 3770 阅读 · 0 评论 -
算法:两数之和(请在数组中找出两个加起来等于目标值的数的下标)
算法描述给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。(注:返回的数组下标从1开始算起)数据范围:2≤len(numbers)≤1500,−10≤numbers[i]≤10000000000 ,0≤target≤1000000000要求:空间复杂度 O(n),时间复杂度 O(nlogn)例如:给出的数组为 [20, 70, 110, 150] , 目标值为90返回一个数组 [1,2]因为 numb原创 2021-12-13 09:22:42 · 950 阅读 · 0 评论 -
算法:数组中只出现一次的数(其它数出现k次)
算法描述:给定一个长度为 n 的整型数组 arr 和一个整数 k(k>1) 。已知 arr 中只有 1 个数出现一次,其他的数都出现 k 次。请返回只出现了 1 次的数。数据范围: 1 ≤ n ≤200000 , 1 < k < 200000 , -2000000000 ≤ arr[i] ≤2000000000进阶:时间复杂度 O(32n),空间复杂度 O(1)阅读原文:原文链接...原创 2021-12-10 09:20:21 · 802 阅读 · 0 评论 -
算法:连续子数组最大和的实现方案
算法描述:输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。数据范围:1<=n<=100000−100<=a[i]<=100要求:时间复杂度为 O(n),空间复杂度为 O(n)进阶:时间复杂度为 O(n),空间复杂度为 O(1)阅读原文:原文链接...原创 2021-12-03 09:08:24 · 185 阅读 · 0 评论 -
跳台阶算法的三种实现方案(PHP)
算法描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。数据范围:0≤n≤40要求:时间复杂度:O(n) ,空间复杂度: O(1)阅读原文:点我阅读原文...原创 2021-11-26 16:00:42 · 282 阅读 · 0 评论