题目: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 : 给定 nums = ...
分类:
其他好文 时间:
2020-03-14 23:57:44
阅读次数:
96
Leetcode双指针刷题记录 面试题48.最长不含重复字符的子字符 题目描述 : 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例1: 提示: s.length hash; int ans = 0; for(int i = 0, j = 0; i 1) { ha ...
分类:
其他好文 时间:
2020-03-14 18:18:58
阅读次数:
68
Chapter6 双指针,BFS和图论 + 双指针 1.日志统计 1238 经典的双指针模板题 所谓双指针其实就是针对多重循环的一种优化方式,缩小时间复杂度以确保不会TLE 循环的是一个时间段 + 单链表 1.单链表 826 ...
分类:
其他好文 时间:
2020-03-14 14:57:08
阅读次数:
49
121.买卖股票的最佳时机 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 题解: 思路比较简单,双指针模型 714.买卖股票的最佳时机含手续费 给定一 ...
分类:
其他好文 时间:
2020-03-10 21:54:45
阅读次数:
69
和三数之和思路一样,先排序,再双指针。 class Solution { public List<List<Integer>> fourSum(int[] nums, int target) { Arrays.sort(nums); List<List<Integer>> res = new Arr ...
分类:
其他好文 时间:
2020-03-09 23:54:02
阅读次数:
95
Codeforces Round 626 D. Present 异或按位确定 +二分or双指针 题意 给n个数,求他们两两的和的异或结果 n(4e5) 值域(1e7) 思路 异或问题一般都是按位确定,那么怎么确定第k位的值呢。首先第k位的值只和[1,k]位有关系,也就是说只跟a[i]本来在这一位有的 ...
分类:
其他好文 时间:
2020-03-08 19:39:53
阅读次数:
59
先排序,然后双指针。 class Solution { public int threeSumClosest(int[] nums, int target) { int res = nums[0]+nums[1]+nums[2]; Arrays.sort(nums); for(int i=0;i<n ...
分类:
其他好文 时间:
2020-03-06 15:26:43
阅读次数:
52
先排序,再用双指针,注意的是解中是没有重复的情况的,所以需要跳过。 class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> res = new ArrayList<>(); Arra ...
分类:
其他好文 时间:
2020-03-06 01:31:24
阅读次数:
48
算法介绍 + 算法简介:尺取法,又名two pointers(双指针法),是一种简洁而有效的dp优化算法,常见于将时间复杂度O($n^2$)的一般dp优化为O(n)。 + 适用条件:限制变量随着指针的单向移动,而呈单调变化。 + 实现细节: 1. 申请两个指针$p_1$,$p_2$。 2. 固定$p ...
分类:
其他好文 时间:
2020-03-05 20:52:17
阅读次数:
75
一:题目简介以及来源 来源于leetocode125。 这个题目说的是,给你一个字符串,你要判断它是否是回文字符串。字符串里只考虑字母和数字,其它的字符可以无视。另外,对于字母,可以忽略大小写。 二:解题思路 1.看到判断是否为回文字符串肯定要想到双指针法,一个指向字符串的头部,一个指向字符串的尾部 ...
分类:
编程语言 时间:
2020-03-05 13:51:37
阅读次数:
85