算法
文章平均质量分 86
算法
Worthy_Wang
一辈子没办法做太多事情,所以每一件都要做到精彩绝伦。
展开
-
算法:海量数据处理
在面试中我们会经常遇到和海量数据处理相关的问题,在这里我们将问题进行一个汇总,保证将来我们在遇到海量数据相关问题的时候能够快速解答。一.100亿个32位的整数,如何最快找到中位数,并要求时间复杂度为O(N)?如果内存能够全部装下:直接使用快速排序。如果内存不能够全部装下:先将第一个字节,也就是前8位进行分桶,可以分为256个桶,也就是将100亿的整数分别按照第一个字节的大小装入这256个桶(桶是外置文件)之中;如果内存仍然不能够全部装下中位数所在桶中的全部数据,那再将该桶按照第二个字节的大小进行划分原创 2021-03-26 12:11:14 · 321 阅读 · 0 评论 -
leetcode精选高频hard题目
leetcode精选高频hard题目4.寻找两个正序数组的中位数60.排列序列37.解数独51.N皇后52.N皇后2149.直线上最多的点数42.接雨水135.分发糖果41.缺失的第一个正数25.K个一组翻转链表65.有效数字28.实现strStr()132.分割回文串244.通配符匹配10.正则表达式匹配97.交错字符串72.编辑距离32.最长的有效括号84.柱状图中最大的矩形85.最大矩阵239. 滑动窗口最大值99.恢复二叉搜索树124.二叉树中的最大.原创 2021-02-01 09:56:28 · 4810 阅读 · 0 评论 -
leetcode算法专题训练:十五.细节实现专题
十五.细节实现专题7.整数反转9.回文数56.合并区间57.插入区间14.最长公共前缀5.最长回文子串3.无重复字符的最长子串76.最小覆盖子串30.串联所有单词的子串128.最长连续序列54.螺旋矩阵59.螺旋矩阵26.Z字形变换68.文本左右对齐剑指 Offer 61. 扑克牌中的顺子十五.细节实现专题7.整数反转题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下 32 位的有符号整数,则其数值.原创 2021-02-01 09:55:58 · 702 阅读 · 0 评论 -
leetcode算法专题训练:十四.位操作专题
十四.位操作专题50.Pow(x,n)136.只出现一次的数字137.只出现一次的数字2260.只出现一次的数字389.格雷编码剑指 Offer 64. 求1+2+…+n剑指 Offer 65. 不用加减乘除做加法29.两数相除191. 位1的个数十四.位操作专题50.Pow(x,n)题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数。-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [−2.原创 2021-02-01 09:55:28 · 655 阅读 · 0 评论 -
leetcode算法专题训练:十三.图专题
十三.图专题133.克隆图十三.图专题133.克隆图题目描述:给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node {public int val;public List neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = .原创 2021-02-01 09:54:58 · 319 阅读 · 0 评论 -
leetcode算法专题训练:十二.动态规划专题
十二.动态规划专题62.不同路径63.不同路径2剑指 Offer 13. 机器人的运动范围剑指 Offer 47. 礼物的最大价值64.最小路径和120.三角形最小路径和118.杨辉三角119.杨辉三角2343. 整数拆分53.最大子序和5.最长回文子串44.通配符匹配10.正则表达式匹配97.交错字符串72.编辑距离剑指 Offer 46. 把数字翻译成字符串91.解码方法115.不同的子序列139.单词拆分140.单词拆分2剑指 Offer 49. 丑数剑.原创 2021-02-01 09:51:52 · 857 阅读 · 0 评论 -
leetcode算法专题训练:十一.贪心法专题
十一.贪心法专题55.跳跃游戏45.跳跃游戏2121.买卖股票的最佳时机122.买卖股票的最佳时机2123.买卖股票的最佳时机311.盛最多水的容器十一.贪心法专题55.跳跃游戏题目描述:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/jump-game解题思路:贪心法,设置能够到.原创 2021-02-01 09:53:27 · 568 阅读 · 0 评论 -
leetcode算法专题训练:十.DFS专题
十.DFS专题130.被围绕的区域131.分割回文串132.分割回文串287.扰乱字符串剑指 Offer 13. 机器人的运动范围36.有效的数独37.解数独51.N皇后52.N皇后2149.直线上最多的点数93.复原IP地址39.组合总合40.组合总合222.括号生成79.单词搜索十.DFS专题130.被围绕的区域题目描述:给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域.原创 2021-01-29 11:22:12 · 903 阅读 · 0 评论 -
leetcode算法专题训练:九.BFS专题
九.BFS专题127.单词接龙126.单词接龙2九.BFS专题127.单词接龙题目描述:给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 be.原创 2021-01-29 11:21:36 · 194 阅读 · 0 评论 -
leetcode算法专题训练:八.暴力枚举专题
八.暴力枚举专题78.子集90.子集277.组合46.全排列47.全排列260.排列序列31.下一个排列17.电话号码的字母组合八.暴力枚举专题78.子集题目描述:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subsets解题思路:子集的本质是求 组合 ,此题也实质上是 组合 的变形题,用D.原创 2021-01-29 11:21:04 · 612 阅读 · 0 评论 -
leetcode算法专题训练:七.查找专题
七.二分法专题33. 搜索旋转排序数组81. 搜索旋转排序数组 II153. 寻找旋转排序数组中的最小值154. 寻找旋转排序数组中的最小值 II34. 在排序数组中查找元素的第一个和最后一个位置剑指 Offer 53 - II. 0~n-1中缺失的数字35.搜索插入位置69.x的平方根74.搜索二维矩阵4.寻找两个正序数组的中位数七.二分法专题33. 搜索旋转排序数组题目描述:升序排列的整数数组 nums 在预先未知的某个点上进行了旋转(例如, [0,1,2,4,5.原创 2021-01-29 11:20:32 · 732 阅读 · 0 评论 -
leetcode算法专题训练:六.排序专题
六.排序专题88.合并两个有序数组21.合并两个有序链表23.合并K个升序链表147.对链表进行插入排序148.排序链表75.颜色分类剑指 Offer 40. 最小的k个数剑指 Offer 41. 数据流中的中位数剑指 Offer 45. 把数组排成最小的数剑指 Offer 51. 数组中的逆序对六.排序专题88.合并两个有序数组题目描述:给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 .原创 2021-01-29 11:20:01 · 415 阅读 · 0 评论 -
leetcode算法专题训练:五.树专题
五.树专题144.二叉树的前序遍历94.二叉树的中序遍历145.二叉树的后序遍历102.二叉树的层序遍历107.二叉树的层次遍历2103.二叉树的锯齿形层次遍历100.相同的树101.对称二叉树226. 翻转二叉树剑指 Offer 26. 树的子结构110.平衡二叉树111.二叉树的最小深度104.二叉树的最大深度114.二叉树展开为链表116.充填每个节点的下一个右侧节点指针117.充填每个节点的下一个右侧节点指针2105.从前序与中序遍历序列构造二叉树106.从中.原创 2021-01-29 11:19:06 · 1216 阅读 · 0 评论 -
leetcode算法专题训练:四.栈与队列专题
四.栈和队列专题剑指 Offer 09. 用两个栈实现队列剑指 Offer 30. 包含min函数的栈剑指 Offer 59 - II. 队列的最大值剑指 Offer 31. 栈的压入、弹出序列20.有效的括号32.最长的有效括号150.逆波兰表达式求值84.柱状图中最大的矩形85.最大矩阵239. 滑动窗口最大值四.栈和队列专题剑指 Offer 09. 用两个栈实现队列题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 de.原创 2021-01-29 11:17:35 · 652 阅读 · 0 评论 -
leetcode算法专题训练:三.字符串专题
三.字符串专题151. 翻转字符串里的单词剑指 Offer 05. 替换空格剑指 Offer 58 - II. 左旋转字符串125.验证回文串28.实现strStr()剑指 Offer 20. 表示数值的字符串65.有效数字8.字符串转换整数67.二进制求和415.字符串相加43.字符串相乘12.整形转罗马数字13.罗马数字转整形38.外观数列71.简化路径58.最后一个单词的长度三.字符串专题151. 翻转字符串里的单词给定一个字符串,逐个翻转字符串中的每.原创 2021-01-29 11:16:59 · 1366 阅读 · 0 评论 -
leetcode算法专题训练:二.链表专题
二.链表专题2.两数相加445.两数相加2206.反转链表92.反转链表225.K个一组翻转链表86.分隔链表83.删除排序链表中的重复元素82.删除排序链表中的重复元素261.旋转链表19.删除链表的倒数第N个节点24.两两交换链表中的节点138.复制带随机指针的链表141.环形链表142.环形链表2876.链表的中间节点剑指 Offer 52. 两个链表的第一个公共节点143.重排链表146.LRU缓存机制二.链表专题2.两数相加题目描述:给出两个.原创 2021-01-29 11:16:05 · 325 阅读 · 0 评论 -
leetcode算法专题训练:一.数组专题
一.数组专题26.删除排序数组中的重复项80.删除排序数组中的重复项2剑指 Offer 39. 数组中出现次数超过一半的数字剑指 Offer 57. 和为s的两个数字剑指 Offer 57 - II. 和为s的连续正数序列1.两数之和15.三数之和16.最接近的三数之和18.四数之和27.移除元素11.盛最多水的容器42.接雨水48.旋转图像66.加一70.爬楼梯73.矩阵置零134.加油站135.分发糖果剑指 Offer 03. 数组中重复的数字41.缺失的第一.原创 2021-01-29 11:14:42 · 1455 阅读 · 0 评论 -
Leetcode 专题训练集合(关联Github)
解题程序都放在Github中:(持续更新)Github地址 :https://github.com/Worthy-Wang/LeetCode刷题之前,用三分钟看看下面的东西,相信我,会有帮助的在进行Leetcode的训练之前,应该掌握:一种主流语言(如C++/Java等)如果你不熟悉语言,可能你无法理解像sort, merge, bind,这些STL库函数在算法中的妙用 , 也无法理解vector 或是 queue这些容器库的方便之处。熟悉数据结构与算法如果你不熟悉数据结构,那么像二叉树.原创 2020-05-10 18:33:43 · 823 阅读 · 1 评论 -
海量数据:TopK算法
找出无序数组中第K大的元素(前K大元素)方法一:堆排序堆排序法:原理:首先建立k个元素的小顶堆,然后遍历数组并且不断调整小顶堆,遍历之后小顶堆堆顶就是第k大元素,整个小顶堆存放的也就是前K大的元素。时间复杂度:O(klogk + (n-k)logk) = O(nlogk)空间复杂度:O(k), 当然也可以不开辟空间,也就是O(1)//调整为最小堆void heapAdjust(ve...原创 2020-02-11 11:22:48 · 844 阅读 · 2 评论