![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetCode_Java学习
tebby呦
北京邮电大学硕士在读
展开
-
二分法续(1)在排序数组中查找元素的第一个和最后一个位置__leetcode
在排序数组中查找元素的第一个和最后一个位置leetcode题目位置在排序数组中查找元素的第一个和最后一个位置思路一: 在数组A中找到target的位置后再循环遍历该位置的左右来确定元素的第一个位置和最后一个位置时间复杂度:O(logn)~O(n)原因分析:当所有元素均为target时,性能最差为O(n) //查找元素的第一个和最后一个位置 public static int[] searchRange(int[] nums, int target) { //数组原创 2021-02-22 15:50:45 · 133 阅读 · 0 评论 -
删除排序数组中的重复项_leetcode
给定排序数组A,需要在原地删除重复出现的元素,使得每个元素只出现元素一次,返回移除后数组的新长度leetcode原题位置删除排序数组中的重复项这里使用的是双指针,利用快指针快速遍历所有元素,慢指针替换所有不相同的元素思路:这里使用两个指针,slow和fast两个指针,fast指针用于遍历数组中的所有元素,而slow指针用于确定数组中所有不相同的元素,关键语句是 if (A[slow] != A[fast]){ A[slow + 1] = A[原创 2021-02-21 14:06:35 · 81 阅读 · 0 评论 -
有关二分法的一些整理与学习
常见二分法及其变形整理二分法适用于有序数组,可以将时间复杂度由O(m)降低为O(logm)(1)数组有序且不重复,确定value在数组A中的位置思路:利用双指针动态查找value在数组A中的位置,迭代停止的条件是当low > high的时候,表明已经遍历完全 //当数组 有序 且 不重复的时候,确定 value 在 数组 A 中的位置 public static int binarySearch(int[] A, int value) { //数组长度 以及两原创 2021-02-21 13:23:21 · 103 阅读 · 0 评论 -
两两交换链表中的节点__leetcode
leetcode地址两两交换链表中的节点使用两种方法,迭代和递归这是使用的节点类 public class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this.val = val; this.next = next; }迭代判断是否满足条件,这里的条件原创 2021-02-19 13:58:19 · 85 阅读 · 0 评论 -
合并两个有序列表_leetcode(Java)
这是一道leetcode伤的题目,在答完题后觉得有必要整理一下算是记录也算是分享。合并两个有序列表_leetcode这里主要有两种方法,一种是迭代,另一种是递归。首先区分一下二者迭代:每次输出的结果作为下一次的输入,思路在于逐渐逼近,使用新值来覆盖旧值,直到满足条件后结束,不保存中间值,空间利用率高。常用for while 循环结构递归:自己调用自己(比如斐波纳切数列这种),将一个分解为若干相对小一点的问题,遇到递归出口再原路返回,因此必须保存相关的中间值,这些中间值压入栈中保存,问题规模较大时会原创 2021-02-18 15:38:46 · 341 阅读 · 0 评论