题目内容 Given a singly linked list, determine if it is a palindrome. Example: 分析过程 题目归类: 链表反转,fast/slow双指针法 题目分析: 这道题归到easy其实是不对的,应该归到medium,因为如果要考虑O(n)时 ...
分类:
其他好文 时间:
2020-02-13 15:00:47
阅读次数:
64
Two Sum类 首先是基本的Two Sum题解 用hashmap 时间复杂度O(n),空间复杂度O(n),每一次首先找hashmap中有没有target - nums[i], 如果没有将nums[i]入map 用双指针法,时间复杂度O(n + nlogn), 空间复杂度O(1) 首先要对数组进行排 ...
分类:
其他好文 时间:
2020-02-11 09:28:14
阅读次数:
43
区间问题: LeetCode56:已知多个区间,将这些区间有相交的区间进行合并,输出有序的合并结果。 排序问题: LeetCode75:荷兰国旗问题,多种解法,双指针法巧妙。 关于排序问题,面试肯定基本不考基本的排序,因为C++有sort,因此需要考虑一些特殊的情况:尤其是桶排序,计数排序,堆排序, ...
分类:
其他好文 时间:
2020-01-29 19:48:32
阅读次数:
76
题意 给出$n$个垂直线段,相邻两线段之间的距离是$1$,选出一个区间,使得区间两端线段中较短的那根长度乘区间长度最大。 思路 想法1:枚举没对线段作为区间端点的情况。时间复杂度$O(n^2)$,太暴力。 想法2:双指针法。 思想依据 :因为两段之间形成的区域总会受到其中较短的那条长度的限制,此外, ...
分类:
其他好文 时间:
2020-01-26 23:52:24
阅读次数:
55
链表又来了,可见ListNode 这个数据结构出现之频繁。 本题求解链表中是否存在环路,让我去看看题解怎么区分环路。 盲猜双指针法 两种方法: 1.set,比用List快很多 2.快慢指针 知识点: 1.链表中假定所有元素都不重复,所以只要出现重复元素就说明有循环 空间复杂度>O(1) 1.因为 之 ...
分类:
其他好文 时间:
2020-01-26 17:36:01
阅读次数:
59
1.一般涉及到链表(ListNode)的时候,往往我们会得到一个头节点 head,对头节点处理都是不动它,声明一个复制它的变量。 本题中 ha,hb = headA,headB 然后再双指针法进行计算。 2. 条件赋值 ha = ha.next if ha else headB ...
分类:
其他好文 时间:
2020-01-25 19:35:49
阅读次数:
81
解法思路,可以使用暴力解法,但是时间复杂度过多,时间复杂度为O(N),所以不建议使用,我采用双指针法,即头尾两个指针,当头指针的值小于尾指针,则头指针后移,否则尾指针后移 代码如下 package com.qyx.Tree; /** * 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标 ...
分类:
编程语言 时间:
2020-01-10 20:25:58
阅读次数:
77
答案参考:https://www.zhihu.com/people/cxyxiaowu/activities time O(n) space O(1): 双指针法,计算的中心思想为: 左右(包括自身)最低的柱子决定能装多少水,装水的体积为 water_i = min { l_max, r_max } ...
分类:
其他好文 时间:
2019-12-05 22:09:18
阅读次数:
121
针对一些要求in place的问题,使用双指针法可有效的解决。 1.数组 在空间复杂度为O(1)的情况下,移除数组中的元素 在空间复杂度为O(1)的情况下,去重已排序的数组 ...
分类:
其他好文 时间:
2019-11-23 23:52:57
阅读次数:
114
题目 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a*a + b*b = c。 示例 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 输入: 3 输出: False 题解 本题利用双指针法进行求解,与两数之和一样思路,其中注意先限定好右指针的范围降低 ...
分类:
其他好文 时间:
2019-11-16 17:24:43
阅读次数:
61