![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
记录每次刷的算法题以及一些总结
晚星-离落
这个作者很懒,什么都没留下…
展开
-
LeetCode88 Merge Sorted Array
题目 解析 根据题意,作为参数的两个数组都是有序的。创建一个数组,长度是两个数组之和,从尾部开始遍历,将值装入数组中。 题解 class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int index1 = m - 1; int index2 = n - 1; int indexMerge = m + n - 1; whi原创 2020-07-26 21:36:51 · 89 阅读 · 0 评论 -
leetcode633两数平方和
两数平方和 解析 题目中给定条件是非负整数 要求是判断是否存在两个整数a和b满足a^2 + b^2 = target。所以在解题的时候可以考虑先求这个数的开方(使用Math.sqrt()函数)j。之后从0开始做平方和。如果满足就返回true。过大的话就将j自减。如果过小的话就让代表左边的数自加。直到二者平方和是target。如果直到二者相等都没有查找成功,说明就不存在两个整数满足该条件。 代码 class Solution { public boolean judgeSquareSum(int t原创 2020-07-25 21:56:59 · 119 阅读 · 0 评论 -
leetcode167 有序的数组
题目 根据题意:数组是有序的且按照升序排序 返回值为下标值组成的数组 所以可以使用双指针或Z和使用map来解决问题 双指针 思想:使用两个指针,一个指向第一个最小的,另一个指向最大的,如果此二者和大于目标值,那么就让最大的那个值下标往前移动,让和更大。如果二者和小于目标值,就让最小的值往后移动,让和更小。指导找到满足需求的下标,如果都没有找到的话,那么就返回null。 class Solution { public int[] twoSum(int[] numbers, int target) {原创 2020-07-24 22:06:43 · 161 阅读 · 0 评论 -
剑指Offer- 10-1 斐波那契数列
题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 eg1 输入:n = 5 输出:5 eg2 输入:n = 2 输出:1 解题 class S原创 2020-07-23 21:31:17 · 126 阅读 · 0 评论 -
剑指Offer-06 从尾到头打印链表
题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 eg 输入:head = [1,3,2] 输出:[2,3,1] 题解 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public in原创 2020-07-22 21:29:56 · 77 阅读 · 0 评论 -
剑指Offer-05 替换空格
题目 将一个字符串中的空格替换成"%20" eg Input: "A B" Output: "A%20B" 思路一 将输入的字符串切分为一个个char类型的字符数组,之后对其拼接的时候做判断,如果数组元素是’ '就将该元素替换为"%20" ① 在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。因为一个空格要替换成三个字符(%20),所以当遍历到一个空格时,需要在尾部填充两个任意字符。 ② 令 P1 指向字符串原来的末尾位置,P2 指向字符串现在的末尾位置。P1 和 P2 从后向前遍历原创 2020-07-22 21:28:13 · 57 阅读 · 0 评论 -
剑指Offer-04 二维数组中的查找
二维数组中的查找 题目 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 eg [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ] 给定 target = 5,返回 true。 给定原创 2020-07-21 21:14:21 · 70 阅读 · 0 评论 -
剑指Offer-03 数组中重复的数字
数组中的重复数字 题目 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 eg Input: {2, 3, 1, 0, 2, 5} Output: 2 解法 根据题目数组中元素的值始终都是小于数组元素个数的。可以将值为i的元素调整到第i个位置上进行求解。在调整过程中,如果第i个位置上已经有了一个值为i的元素,那么就可以确定这个值是重复的。public class Solut原创 2020-07-21 20:51:02 · 63 阅读 · 0 评论