算法
算法介绍及算法题讲解
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
beyond的架构之旅
这个作者很懒,什么都没留下…
展开
-
力扣 整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0class Solution { public int reverse(int原创 2021-10-26 21:04:49 · 100 阅读 · 0 评论 -
力扣 股票的最大利润
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2:输入: [7,6,4,3,1]输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。一次遍历我们来假设自己来原创 2021-10-26 20:12:16 · 124 阅读 · 0 评论 -
力扣 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:s = ["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]前后替换法class Solution { publi原创 2021-10-25 21:46:42 · 87 阅读 · 0 评论 -
力扣 反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]迭代法:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * Li原创 2021-10-25 21:33:23 · 98 阅读 · 0 评论 -
常用的数据结构基础(结合java)
数据结构基础数组链表数组和链表区别栈队列散列表散列表扩容为什么需要扩容扩容的判断标准树二叉树二叉堆看了小灰的漫画算法中数据结构相关部分后,整理记录一些内容用于之后学习数组数组的英文名是array,是有限个相同类型的变量所组成的有序集合,数组中的每一个变量被称为元素。索引范围为 0 到 数组长度-1读取,更新元素时根据下标操作元素,这种读取方式叫做随机读取。时间复杂度为O(1)。插入元素分为尾部插入,中间插入(插入位置及之后的元素向后移动),超范围插入(需要扩容,创建一个原数组两倍长度的数组,原创 2020-07-16 16:59:09 · 168 阅读 · 0 评论 -
力扣 存在重复元素
存在重复元素给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true使用Setclass Solution { public boolean containsDuplicate(int[] .原创 2021-10-02 13:29:51 · 99 阅读 · 0 评论 -
力扣 多数元素
169. 多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2 进阶: 尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。//最原始的思路遍历整个数组,对记录每个数值出现的次数(利用原创 2021-10-01 20:42:07 · 89 阅读 · 0 评论 -
力扣 合并两个有序数组
88. 合并两个有序数组给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。 示例原创 2021-09-29 21:52:13 · 168 阅读 · 0 评论 -
力扣 两数之和
1. 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。 示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。原创 2021-09-29 21:32:00 · 79 阅读 · 0 评论