应用及优点: 1.可用于解决数组或者字符串的子元素问题。 2.用单循环代替了嵌套循环问题,时间复杂度低。 3.用双指针维护动态窗口。 相关算法题: Longest Substring Without Repeating Characters无重复最长子串 Find All Anagrams in a ...
题目: 解答: 先排序,然后设定返回值为最大,用双指针求得结果。 1 class Solution { 2 public: 3 int smallestDifference(vector<int>& a, vector<int>& b) 4 { 5 sort(a.begin(),a.end()); ...
分类:
编程语言 时间:
2020-05-05 20:11:14
阅读次数:
61
题目: 实现 strStr():实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 思路: 思路比较简单,暴力法。 程序: class So ...
分类:
编程语言 时间:
2020-05-05 11:05:27
阅读次数:
109
题目: 解答: 设置双指针 如果右指针 r 是奇数,指针往右走 否则与左指针 l 交换一次 移动左指针 l 1 class Solution { 2 public: 3 vector<int> sortArrayByParity(vector<int>& A) 4 { 5 int l = 0; 6 ...
分类:
编程语言 时间:
2020-05-04 19:48:57
阅读次数:
69
题目: 解答: 方法一:双指针。 在找到一个偶数位是奇数的前提下,找奇数位上的偶数,找到之后在交换。 1 class Solution { 2 public: 3 vector<int> sortArrayByParityII(vector<int>& A) 4 { 5 int j = 1; 6 f ...
分类:
编程语言 时间:
2020-05-04 19:32:24
阅读次数:
70
题目: 解答: 方法一:分割+解析,两次遍历,线性空间。 第一个想法是将两个字符串按点字符分割成块,然后逐个比较这些块。 如果两个版本号的块数相同,则可以有效工作。如果不同,则需要在较短字符串末尾补充相应的 .0 块数使得块数相同。 算法: (1)根据点分割两个字符串将分割的结果存储到数组中。(2) ...
分类:
其他好文 时间:
2020-05-04 13:36:04
阅读次数:
52
题目: 解答: 方法一:暴力法 算法: 对于给定字符串中的每个索 i,让我们删除该字符,然后检查结果字符串是否是回文。如果是(或者原始字符串是回文),那么我们将返回 true。 方法二:双指针 最重要一点:只能去掉一个字符1、左指针从第0位开始,右指针从最后一位开始2、定义一个bool容器,用于限定 ...
分类:
其他好文 时间:
2020-05-03 21:46:29
阅读次数:
87
题目: 有序链表转换二叉搜索树:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 思路: 看到二叉树要想到用递归的思想,为了找到根节点,使用双指针法,快指针是慢指针速度的二倍,快指针到 ...
分类:
编程语言 时间:
2020-05-03 21:42:05
阅读次数:
94
地址 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 样例示例 1: 输入: "abcabcbb"输出: 3 解 ...
分类:
其他好文 时间:
2020-05-02 12:10:28
阅读次数:
51
双指针法 思路: 参考三数之和,在外面多嵌套一层 代码: class Solution: def fourSum(self, nums: List[int], target: int) -> List[List[int]]: if len(nums) < 4: return [] output = ...
分类:
其他好文 时间:
2020-04-30 14:00:37
阅读次数:
54