碰到极角排序不能无脑就用双指针写,要思考是否有更加好的写法 本题由于有三点共线,所以双指针扫描会有问题,由于只要求直角个数,所以我们可以直接用lower_bound二分去找这个就可以 或者也可以用map重载point的=,<,>运算 #include<bits/stdc++.h> using nam ...
分类:
编程语言 时间:
2020-02-21 22:10:58
阅读次数:
89
题目 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路 由于这题给的参数是char指针,不能直接使用string的replace方法,但是参考他人题解,发现了一个比较巧妙的双指针,不额 ...
分类:
其他好文 时间:
2020-02-21 20:46:01
阅读次数:
79
找出在数组中的最长递增子序列 数组:1,9,2,5,7,3,4,6,8,0 最长递增子序列:3,4,6,8 思路: 遇到大的就移动,如果在某一个位置变小了就计算这一段的长度(双指针)不停更新最大的length一个在前线,一个在后面作为游标,最后结束了看一下战线拉了有多长 public class 最 ...
分类:
编程语言 时间:
2020-02-21 20:12:04
阅读次数:
88
题目链接: "P5745 【深基附B例】数列求和" 现在想说:$O(N)$的题要不怎么也想不出来,要不灵光乍现,就像这道题。 我们维护一个类似单调队列的加法单调队列: 若相加大于此数,就将队尾元素弹出,直至满足条件,顺便更新下$maxn$值即可。 然后遇见了烦人的头尾双指针,多了个等号就只有$30\ ...
分类:
其他好文 时间:
2020-02-21 20:07:15
阅读次数:
89
LeetCode 0392. Is Subsequence判断子序列【Easy】【Python】【双指针】 Problem "LeetCode" Given a string s and a string t , check if s is subsequence of t . You may as ...
分类:
编程语言 时间:
2020-02-20 13:43:02
阅读次数:
92
题意 从给定的数组中选出三个数,使得三个数的和最接近目标值。 思路 想法1:暴力,$O(n^3)$。 想法2:排序 + 双指针。上题中的想法可直接拿过来用,改一下返回的结果就可以了。时间复杂度:$O(n^2)$,空间复杂度:$O(n)$。 代码 总结 排序 + 指针。 ...
分类:
其他好文 时间:
2020-02-19 13:21:27
阅读次数:
65
问题描述: 给定一个正整数数组 nums。 找出该数组内乘积小于 k 的连续的子数组的个数。 示例 1: 输入: nums = [10,5,2,6], k = 100输出: 8解释: 8个乘积小于100的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6 ...
分类:
编程语言 时间:
2020-02-18 20:29:29
阅读次数:
71
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前 ...
分类:
其他好文 时间:
2020-02-18 14:42:05
阅读次数:
70
首先快速排序分为三部 首先要先确定分界点x = a[l] a[r] a[(l+r)/2]都行依据情况而定 其次 调整区间,定义双指针的方法,排序一次后,i指针前面的数一定小于等于x(分界点)j指针后面的数一定大于等于x 最后递归完成排序 #include <iostream>#include <st ...
分类:
编程语言 时间:
2020-02-17 19:51:59
阅读次数:
74
接雨水这道题目挺有意思,在面试题中出现频率还挺高的,本文就来步步优化,讲解一下这道题。 先看一下题目: 就是用一个数组表示一个条形图,问你这个条形图最多能接多少水。 下面就来由浅入深介绍暴力解法 备忘录解法 双指针解法,在 O(N) 时间 O(1) 空间内解决这个问题。 一、核心思路 我第一次看到这 ...
分类:
其他好文 时间:
2020-02-17 12:31:55
阅读次数:
113