[TOC] "Leetcode 3" 问题描述 例子 方法 保留一个将字符串中的字符存储为键并将其位置存储为值的hashmap,并保留两个定义最大子字符串的指针。移动右指针以浏览字符串,同时更新hashmap。如果字符已经在hashmap中,则将左指针移到最后找到的相同字符的右边。请注意,两个指针只 ...
分类:
其他好文 时间:
2020-02-08 09:44:27
阅读次数:
54
A. Ring 几乎是原题。 发现对于一个确定的左端点,必然存在一个分界点r,使得所有右端点>r的区间都存在环,其余都不存在。 考虑这个东西具有单调性,所以用双指针就可以实现这个过程。 那么剩下的问题就是动态维护图的连通性,使用LCT即可。 B. Exchange 发现主要的问题在于2操作。 观察这 ...
分类:
其他好文 时间:
2020-02-07 22:31:33
阅读次数:
76
https://ac.nowcoder.com/acm/contest/3002/H 题意:给出长度为n的01字符串,可以进行k次操作:将一个字符0变1,1变0.问最长相同子串为多长。 解法:贪心,双指针模拟l , r 操作过程。 //#include <bits/stdc++.h> #includ ...
分类:
其他好文 时间:
2020-02-05 20:20:23
阅读次数:
54
10种排序算法的Java实现 分类 基于比较的排序算法 冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序,堆排序 非比较的排序算法 计数排序,桶排序,基数排序 稳定的排序算法 冒泡排序,插入排序,归并排序,计数排序,桶排序,计数排序 不稳定的排序算法 选择排序,希尔排序,快速排序,堆排序 ...
分类:
编程语言 时间:
2020-02-04 15:31:38
阅读次数:
69
对于两重for循环 include include include using namespace std; / 把一个字符串中的所有单词找到,并按行输出 / int main() { char str[100]; gets(str); int n = strlen(str); for(int i ...
分类:
编程语言 时间:
2020-02-03 09:41:08
阅读次数:
89
一、快慢指针: leedcode 142. 环形链表 II 快慢指针的思想是设置慢指针slow和快指针fast,slow每次走一步,fast每次走两步,如果有环fast指针和slow指针必然相遇,相遇时 定义新的指针p从head开始和slow从当前位置起每次都走一步,直到相遇,相遇的位置就是环的入口 ...
分类:
编程语言 时间:
2020-02-02 22:02:24
阅读次数:
127
(一)图论 1.大臣的旅费 很久以前,T王国空前繁荣。 为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。 同时,如果不重复经过大城市,从首都到达每个大 ...
分类:
其他好文 时间:
2020-02-01 14:40:07
阅读次数:
68
要求:请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true思路:利用快慢双指针+反转半链表+匹配后半链表注意:当链表为空的时候也是回文链表。当链表是奇数个是如1->1->2->1->1->NULL 在slow应该 ...
分类:
编程语言 时间:
2020-01-31 23:04:20
阅读次数:
96
双指针 class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ i = j = 0 while j < l ...
分类:
其他好文 时间:
2020-01-31 23:02:26
阅读次数:
64
(一)BFS 1.地牢大师 你现在被困在一个三维地牢中,需要找到最快脱离的出路! 地牢由若干个单位立方体组成,其中部分不含岩石障碍可以直接通过,部分包含岩石障碍无法通过。 向北,向南,向东,向西,向上或向下移动一个单元距离均需要一分钟。 你不能沿对角线移动,迷宫边界都是坚硬的岩石,你不能走出边界范围 ...
分类:
其他好文 时间:
2020-01-31 18:30:22
阅读次数:
72