文章分类 - leetcode-双指针
摘要:Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements. For example, giv
阅读全文
摘要:leetcode第283题:移动零 题目: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 解析: 写一个
阅读全文
摘要:阅读更多 本文链接 http://www.luyixian.cn/news_show_6458.aspx
阅读全文
摘要:题目 题目 分析 其实题目本身并不难,主要是他要求必须在原数组上进行操作,不能拷贝额外的数组。 这里用到了双指针法,快指针遍历,遇到0不动,遇到非0,则和慢指针交换,慢指针+1。 代码 public class Main { public static void main(String[] args
阅读全文
摘要:题目 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2输出: false 输入: 1->2输出: false 示例 2: 输入: 1->2->2->1输出: true 输入: 1->2->2->1输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 思
阅读全文
摘要:题目 代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ clas
阅读全文
摘要:请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true解题思路:1.快慢指针找到中点2.将链表分为左右两个链表3.将右边的链表逆序4.对比左右链表是否相等(右边链表长度可能比左边链表少1 因此右边链表为空时结束循环
阅读全文
摘要:目录 1.题目描述 2.解法一:(空间复杂度O(n)) 3.解法二:(空间复杂度O(n/2)) 4.解法三:(进阶:空间复杂度O(1)) 目录 1.题目描述 2.解法一:(空间复杂度O(n)) 3.解法二:(空间复杂度O(n/2)) 4.解法三:(进阶:空间复杂度O(1)) 正文 回到顶部 1.题目
阅读全文
摘要:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复
阅读全文
摘要:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。
阅读全文
摘要:题目地址:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ 题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输
阅读全文
摘要:题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums
阅读全文

浙公网安备 33010602011771号