
力扣刷题Java
算法小白,还没有系统的刷过算法题,想要提升一下自己的逻辑思维能力,记录从今天开始刷题。文章是自己写的代码和自己解题的思路。
拥抱白菜的猪
这个帅博主很懒,什么都没有留下...
展开
-
排序——给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。### 解题思路此题有两个关键点,首先是给的是一个非递减数组,包含数组,求得原创 2022-03-09 16:07:20 · 1323 阅读 · 0 评论 -
二分查找——给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
使用时间复杂度为 O(log n) 的算法。解题思路1.在右区间时将left=mid+1;而左区间时确实right=mid,而不是right= mid -1;因为我们不是在找某个值得位置,而是找在哪两个数之间,所以用right=mid,最后right索引下的数,就是查找值的右相邻值,产找的数就应该插入到right索引下2.最后又加了个if判断,是因为如图public class Test1 { public static void main(String[] args) {.原创 2022-03-09 16:05:13 · 4282 阅读 · 0 评论 -
二分查找——假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。
示例 1:输:n = 5, bad = 4输出:4解释:调用 isBadVersion(3) -> false调用 isBadVersion(5)-> true调用 isBadVersion(4)-> true所以,4 是第一个错误的版本。public class Solution extends VersionControl { public int firstBadVersion(int n) { int left = 0; ...原创 2022-03-08 10:42:08 · 266 阅读 · 0 评论 -
二分查找——给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-search著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。.原创 2022-03-08 10:39:51 · 2305 阅读 · 0 评论 -
斐波那契数列java代码实现
斐波那契数列斐波那契数列又称 黄金分割 数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“ 兔子数列 ”;* 指的是这样一个数列:1、1、2、3、5、8、13、21、34、……*其规律是从第3个数开始,每个数都等于它前两个数的和。java代码实现1. 用递归的方法实现:package com;import java.util.Arrays;//1.递归方法public class test2 {......原创 2021-09-09 23:57:26 · 41536 阅读 · 1 评论