LeetCode刷题记录
文章平均质量分 73
seeInfinite
这个作者很懒,什么都没留下…
展开
-
并查集实现(路径压缩)
并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并与查询两种操作的一种数据结构。原创 2024-03-22 17:25:21 · 196 阅读 · 1 评论 -
剑指offer刷题记录 python
刷题原创 2023-01-09 00:38:46 · 367 阅读 · 0 评论 -
Leetcode top 200
时间复杂度:O(m+n)空间复杂度:O(1)使用字典记录历史位置。原创 2022-08-15 17:24:43 · 240 阅读 · 0 评论 -
Python拷贝问题
直接赋值是可以的:改变原数组会导致问题:本质因为Python的变量实际是指针原创 2021-12-14 20:03:17 · 986 阅读 · 0 评论 -
剑指Offer刷题(Python)
矩阵中的路径请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。注意:输入的路径不为空; 所有出现的字符均为大写英文字母;样例matrix=[ ["A","B","C","E"], ["S","F","C","S"], ["A","D","E","E"]]str="BCCE" ,原创 2021-12-07 21:24:01 · 442 阅读 · 0 评论 -
图算法总结(判断有环、最短路径)
有向图判断有环拓扑排序if __name__ == "__main__": v = [[0, 0, 0, 0, 1], [1, 0, 0, 0, 0], [0, 0, 0, 1, 1], [0, 0, 0, 0, 0], [0, 1, 0, 0, 0]] e = [[]] in_v = {} cnt = 0 visited = set() ...原创 2022-02-22 21:40:54 · 4311 阅读 · 0 评论 -
排序算法稳定性
排序算法稳定性所谓稳定性是指待排序的序列中有两元素相等,排序之后它们的先后顺序不变.假如为A1,A2.它们的索引分别为1,2.则排序之后A1,A2的索引仍然是1和2.稳定也可以理解为一切皆在掌握中,元素的位置处在你在控制中.而不稳定算法有时就有点碰运气,随机的成分.当两元素相等时它们的位置在排序后可能仍然相同.但也可能不同.是未可知的.另外要注意的是: 算法思想的本身是独立于编程语言...转载 2019-07-16 10:52:45 · 263 阅读 · 0 评论 -
面经算法题手撕补充
目录Perfect Squares 完全平方数合并K个链表(hard)相同原理:最小区间原题LRU Cache(双向链表+hash map)查找兄弟单词快速幂找出字符数组中出现次数最多的字符给你一个数组,求一个k值,使得前k个数的方差 + 后面n-k个数的方差最小 。我手中有一堆扑克牌, 但是观众不知道它的顺序。两个排序好的数组,找第k小的数字,要求logn...原创 2019-07-12 22:20:04 · 1006 阅读 · 0 评论 -
二刷LeetCode前150记录
两个有序数组的中位数Median of Two Sorted Arrays(sooooo hard)There are two sorted arraysnums1andnums2of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexit...原创 2019-06-20 16:50:02 · 187 阅读 · 0 评论 -
LeetCode (1) | 数组(c++)
Two Sum未排序的数组,输出其中a+b=target的a和b的下标(只需输出一对即可)思路:需要输出下标,故不能直接排序然后2sum,否则下标会有问题使用空间换取时间,即使用Hashmap来建立数字和其坐标位置之间的映射,我们都知道HashMap是常数级的查找效率,这样,我们在遍历数组的时候,用target减去遍历到的数字,就是另一个需要的数字了,直接在HashMap中查找其是否存...原创 2019-06-14 20:12:05 · 215 阅读 · 0 评论 -
leetcod(1) | 数组(c++版本)
最长连续1(Max Consecutive Ones III)Given an arrayAof 0s and 1s, we may change up toKvalues from 0 to 1.Return the length of the longest (contiguous) subarray that contains only 1s.Example 1:...原创 2019-05-31 21:15:48 · 207 阅读 · 0 评论 -
牛客面经手撕算法常见题
目录3sum3Sum Closest有向图是否有环判断链表是否有环二叉树最大深度二叉树路径和是否存在给定的值二叉树路径和为给定的值的所有路径(dfs)二分查找实现二叉树先序遍历非递归二叉树中序遍历使用栈二叉树中序遍历不用栈二叉树后序遍历汉诺塔问题3sum思路:注意去重时间复杂度:O(nlogn)class Solution ...原创 2019-07-31 15:12:58 · 1159 阅读 · 0 评论 -
leetcode股票买卖题目汇总
Best Time to Buy and Sell Stock允许一次买卖思路:O(n)时间复杂度,非常简单class Solution {public: int maxDiff(vector<int>& nums) { if(nums.size() < 2) return 0; int max_profit = 0...原创 2019-07-22 20:53:28 · 773 阅读 · 0 评论 -
leetcode柱子题目总结
装水问题(左右指针)Givennnon-negative integersa1,a2, ...,an, where each represents a point at coordinate (i,ai).nvertical lines are drawn such that the two endpoints of lineiis at (i,ai) and (i, ...原创 2019-08-05 12:29:31 · 410 阅读 · 0 评论 -
30道面试常见的数据结构算法题
注意:边界条件的判断取地址符传参的使用溢出问题,long long题目来源:https://github.com/ZXZxin/ZXBlog/blob/master/%E5%88%B7%E9%A2%98/InterviewAlgorithm.md01背包参考:https://www.cnblogs.com/Christal-R/p/Dynamic_program...原创 2019-08-01 15:48:01 · 3810 阅读 · 1 评论 -
leetcode字典序题目总结
生成下一个字典序Implementnext permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.If such arrangement is not possible, it must rearrange it as the lowest ...原创 2019-08-06 00:11:30 · 1249 阅读 · 0 评论 -
leetcode(1) || 数组 c++
删除重复两次以上数字至两次 Remove Duplicates from Sorted Array II Given a sorted arraynums, remove the duplicatesin-placesuch that duplicates appeared at mosttwiceand return the new length.Do not allocate...原创 2019-08-09 16:36:25 · 147 阅读 · 0 评论 -
鹅的题目
目录Perfect Squares 完全平方数合并K个链表(hard)随机数LRU Cache(双向链表+hash map)查找兄弟单词快速幂组成三角形在一圆周上任意取三个点构成锐角三角形的概率是多少?3Sum大量的Query日志(1T左右),得到出现频次最高的100个Query找出字符数组中出现次数最多的字符Perfect Squares 完...原创 2019-06-12 14:24:30 · 530 阅读 · 0 评论 -
剑指offer刷题全纪录
技巧总结:问清楚问题的条件,比如是否是二叉树,还是二叉搜索树考虑清楚边界条件,一定要记得判断考虑清楚数据类型,比如 int 和 long long传参尽量用引用或指针传递,提高效率复杂大问题尽量化成小问题分析1.找出数组中重复的数字给定一个长度为nn的整数数组nums,数组中所有的数字都在0∼n−10∼n−1的范围内。数组中某些数字是重复的,但不知道...原创 2019-05-14 20:55:15 · 2010 阅读 · 0 评论 -
LeetCode(6)| 排序
目录排序算法总结插入排序Insertion Sort List(easy)归并排序总结:归并排序的时间复杂度和稳定性1.Merge Sorted Array2.Merge Two Sorted Lists(easy)3.Merge k Sorted Lists(hard)思路:解法一:直接不断两两合并解法2:递归解法3:堆排序(与上面两个不同...原创 2019-03-02 16:40:20 · 654 阅读 · 0 评论 -
leetcode(7) | 查找 && 暴力枚举法
目录一、查找Find First and Last Position of Element in Sorted ArraySearch Insert Position(easy)Search in Rotated Sorted Array(mid)Search in Rotated Sorted Array II(mid)Find Minimum in Rotated S...原创 2019-03-05 11:05:29 · 622 阅读 · 0 评论 -
leetcode(5) | 二叉树
目录二叉树遍历1.Binary Tree Preorder Traversal(前序遍历)2.Binary Tree Inorder Traversal(中序遍历)3.Binary Tree Postorder Traversal(后序遍历)4.Binary Tree Level Order Traversal(层次遍历)5.Binary Tree Right Side ...原创 2019-02-16 23:04:50 · 1291 阅读 · 0 评论 -
刷leetcode | c++基础函数
结构体定义#include <iostream> using namespace std;struct SAMPLE{ int x; int y; int add() {return x+y;}}s1; int main(){ cout<<"没初始化成员变量的情况下:"<<s1.add()<&...原创 2019-01-16 20:36:31 · 1544 阅读 · 0 评论 -
leetcode(4) | 栈和队列
目录栈的题目需要注意:每次top和pop前都要对栈进行检测一、esay1.Min Stack2.Valid Parentheses3. Implement Stack using Queues二、Mid1.Evaluate Reverse Polish Notation(逆置波兰表达式)三、hard1.Longest Valid Parentheses2.L...原创 2019-01-15 21:47:38 · 362 阅读 · 0 评论 -
leetcode(2) | 单链表(c++)
目录链表题目经验总结一、Easy1.Reverse Linked List2. Palindrome Linked List3.Remove Duplicates from Sorted List4.Remove Duplicates from Sorted List II5.Add Two Numbers二、mid1.Reverse Linked List I...原创 2019-01-18 12:27:00 · 709 阅读 · 1 评论 -
LeetCode(3)| 字符串刷题
目录一、easy1.Valid Palindrome(回文)2.Implement strStr() 子串问题3.add binary4.Longest Common Prefix(最长公共前缀)5.Roman to Integer6.Integer to Roman7.Count and Say8.Length of Last Word9. Isomorp...原创 2018-12-26 20:39:16 · 1012 阅读 · 0 评论 -
LeetCode (1) | 数组
一、Easy(1)两数之和 II - 输入有序数组给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。你可以假设每个输入都只有一个解决方案,而且你不会重复使用相同的元素。输入:数组 = {2, 7, 11, 15}, 目标数 = 9输出:index1 = 1, index2 = 2错误想法:试图找到target/2在数组中的位置,再往两边查找正确想法:从头尾开始查找,计算头尾...原创 2018-03-30 15:31:34 · 1254 阅读 · 0 评论 -
leetcode(8) | BFS && DFS
广度优先搜索(BFS)总结:适用场景代码模板具体题目Word Ladder(mid)Word Ladder II(hard)Surrounded Regions深度优先算法总结适用场景思考的步骤代码模板深搜与回溯法的区别深搜与递归的区别具体题目Additive Number(hard)Palindrome Partition...原创 2019-03-09 17:46:33 · 691 阅读 · 0 评论 -
牛客网刷题记录
1.大数相乘(hard)题目描述有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。输入描述:空格分隔的两个字符串,代表输入的两个大整数输出描述:输入的乘积,用字符串表示示例1输入 72106547548473106236 982161082972751393输出 7082024482963453804084...原创 2019-03-19 16:35:35 · 334 阅读 · 0 评论 -
面试海量数据处理题总结
参考:https://blog.csdn.net/v_july_v/article/details/6279498/目录top k 问题1、海量日志数据,提取出某日访问百度次数最多的那个IP。2.统计最热门的10个查询串3.有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。4.有10个文件,每个文件1G,每个...原创 2019-04-15 20:13:29 · 12035 阅读 · 3 评论 -
基础排序算法总结 + 代码实现总结
目录排序题解题注意:快速排序的基本实现堆排序选择排序希尔排序桶排序计数排序稳定排序归并排序基数排序直接插入排序冒泡排序选择排序插入排序排序题解题注意:问清楚:(1)排序使用场景:数字个数,数字范围(2)约束条件,比如时间复杂度快速排序的基本实现快速排序算法是一种基于交换的高效的排序算法,它采用了分...原创 2019-03-31 17:03:51 · 340 阅读 · 0 评论 -
leetcode (9) | 分治法 && 贪心法 && 图 && 数论
目录分治法Pow(x,n)Sqrt(x)贪心法Jump Game(mid)Jump Game II(hard)Best Time to Buy and Sell Stock(easy)Best Time to Buy and Sell Stock II(easy)Longest Substring Without Repeating Characters(har...原创 2019-03-13 14:31:17 · 688 阅读 · 0 评论 -
刷题需用的头文件和输入输出
目录注意:头文件模板函数选择:(1)cin >>(2)cin.getline()(3) scanf && printfscanf(1)多组输入c++1.scanf2.cinpython:(1) sys.stdin.readline()(2) input()注意:注意用long long取代int...原创 2019-03-19 21:29:07 · 810 阅读 · 0 评论 -
leetcode(10) || 动态规划 && 位操作
目录动态规划Triangle(mid)Maximum Subarray(easy)Maximum Product Subarray(mid)Longest Increasing Subsequence(最长递增序列)(mid)Palindrome Partitioning II(分割回文串)(hard)Maximal Rectangle(最大矩形)(hard)Bes...原创 2019-03-15 11:52:16 · 1513 阅读 · 0 评论 -
leetcode(2) | 单链表
1.Easy:Reverse Linked ListReverse a singly linked list.Example:Input: 1-&amp;amp;gt;2-&amp;amp;gt;3-&amp;amp;gt;4-&amp;amp;gt;5-&amp;amp;gt;NULL Output: 5-&amp;amp;gt;4-&amp;amp;gt;3-&原创 2018-06-27 14:59:07 · 211 阅读 · 0 评论