
算法与数据结构
xjtu_qyq
个人的bug与patch持续更新 https://bugs.launchpad.net/~qianyuqiao
展开
-
MaximumGap的思想
n个数,放在n+1个桶子里,必定至少有一个空桶且空桶不是第一个和最后一个,是中间某个,所以空桶两边的间距是最大的...原创 2020-08-20 22:40:16 · 120 阅读 · 0 评论 -
百度笔试题练习
蘑菇阵https://blog.youkuaiyun.com/zjwcdd/article/details/52457706?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1原创 2020-08-10 15:11:52 · 246 阅读 · 0 评论 -
二叉搜索树的最近祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root =[6,2,8,0,4,7,9,null,null,3,5]...原创 2020-07-17 17:47:06 · 112 阅读 · 0 评论 -
字节跳动面试题:用归并排序判断冒泡排序的轮数
树状数组的讲解:https://www.cnblogs.com/xenny/p/9739600.html面试题的答案在此:https://blog.youkuaiyun.com/优快云_Coder_T/article/details/77456548http://www.manongjc.com/detail/11-italvzpqijcxbyu.html(这个清楚点)原创 2020-08-05 17:44:26 · 227 阅读 · 0 评论 -
利用单调栈判断二叉搜索树的后序遍历序列
假设二叉搜索树长这样,他的异端前序遍历应该是[5,6,2,3,1]现在如果给出一个这样的数组,如何重建这课二叉搜索树?首先5 \ 6然后来了2, 递增栈会一直递增, 6,5这时候6,5全部被弹出,压入2, 2的父亲是上一个被弹出的5 5 / \2 6然后来了 5 / \2 6 \ 3...原创 2020-07-23 15:59:32 · 180 阅读 · 0 评论 -
买卖股票 状态机模型的理解
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4]输出:5状态机模型如下:class Solution {public: int maxProfit(vector<int>& prices) { int buy = INT_MIN; int sell = 0; for (int i = 0; i < prices..原创 2020-07-18 18:15:54 · 198 阅读 · 0 评论 -
深信服5月26日笔试
第一题农夫有一块地,被划分为m行n列大小相等的格子,其中一些格子是可以放牧的(用1标记),农夫可以在这些格子里放牛,其他格子则不能放牛(用0标记),并且要求不可以使相邻格子都有牛。现在输入数据给出这块地的大小及可否放牧的情况,求该农夫有多少种放牧方案可以选择(注意:任何格子都不放也是一种选择,不要忘记考虑!...原创 2020-05-26 22:44:08 · 157 阅读 · 0 评论 -
你知道什么是AVL树吗?
AVL树是自平衡二叉查找树在AVL树中任何节点的两个子树的高度最大差别为1为什么都用红黑树不用AVL树?1. 如果插入一个node引起了树的不平衡,AVL和RB-Tree都是最多只需要2次旋转操作,即两者都是O(1);但是在删除node引起树的不平衡时,最坏情况下,AVL需要维护从被删node到root这条路径上所有node的平衡性,因此需要旋转的量级O(logN),而RB-...原创 2020-04-14 17:35:56 · 443 阅读 · 0 评论 -
面试题 只用2GB内存在20亿个整数中找到出现次数最多的数
1.如果直接做哈希,最坏的情况下,key需要4B,value需要4B,一共需要160亿B = 15GB,显然不行2.如果把数据有2亿个,需要1.5GB 可以3.按照最低4位做哈希,将大文件分为16个小文件,则每一位中key的个数不超过2亿4. 分别统计16个文件里面的最大值,然后取最大即可...原创 2020-03-29 17:40:41 · 694 阅读 · 1 评论 -
leetcode287. Find the Duplicate Number
方法一:map时间复杂度 O(n)空间复杂度O(n)方法二:交换 [2,3,4,5,1,1]class Solution {public: int findDuplicate(vector<int>& nums) { for(int i = 0; i < nums.size(); i++) { ...原创 2020-03-27 16:13:54 · 88 阅读 · 0 评论 -
leetcode327 超时大坑
这题使用把两个赋值 for (int i = st; i <= mid; i++) { int m = mid; int n = mid; while (m <= ed && sums[m] - sums[i] < lower) m++; ...原创 2019-06-06 17:25:33 · 1006 阅读 · 0 评论 -
leetcode28. Implement strStr() (以及个人对KMP算法理解)
kmp算法标准板子题class Solution {public: vector<int> getNext(string needle) { vector<int> next(needle.length()); int k = -1 ; int j = 0; next[0] = -1;...原创 2019-02-17 16:21:51 · 236 阅读 · 0 评论 -
leetcode刷题总结(持续更新)
1.关于递归与迭代递归的性能低但是代码直观,改成迭代后子结构不变二叉树的迭代实现?2.动态规划关于最大值最小值这种最值问题,一般都可以通过动态规划的方法进行判断,某些存在性问题也可以用动态规划的方法进行计算https://leetcode.com/problems/word-break/3.初始化数字为最大值时,可以为INT_MAX,但是记住,INT_MAX+1后为负数!!...原创 2018-11-09 14:58:40 · 1358 阅读 · 0 评论 -
leetcode221 Maximal Square
题目链接https://leetcode.com/problems/maximal-square/开始是用单调栈做的,出问题的代码在这class Solution {public: int maximalSquare(vector<vector<char>>& matrix) { if(matrix.size() == 0 |...原创 2018-12-20 21:16:19 · 173 阅读 · 0 评论 -
leetcode 手写计算器 方法总结
1.leetcode 227 Basic calculator 我目前见过的最好的解法Implement a basic calculator to evaluate asimple expression string.The expression string contains only non-negative integers, +, -, *, / operators and...原创 2019-02-22 10:43:46 · 688 阅读 · 0 评论 -
今日头条的面试题(部分)
1.给定一个有序数组,输出平方后消重结果中数字的个数,每次删除一个最大的数比如: -2, -2, -1,0,1消重后有3个数;0,0,1,2,3,4,5,5,6消重后有7个数O(n)复杂度解法:int count(vector<int>& nums){ int len = nums.size(); if (len < 2) ...原创 2019-03-06 19:04:55 · 554 阅读 · 0 评论 -
关于istringstream用法的一个坑
当istringstream到达输入流的末尾的时候,会发生什么?看下面这段代码#include<iostream>#include<sstream>#include<string>using namespace std;int main(){ string data = "1 2 3 "; istringstream in(d...原创 2019-03-12 23:21:49 · 2179 阅读 · 3 评论 -
你真的会写二分查找吗?
上个月面试网易,面试官要我写个二分查找,查找与target相等的数字的下标。。。我心想:简单;刷刷一写,面试官说:你这不对,int mid = (st + ed) >> 1;会溢出;我:????那好吧 我改成unsigned int tmp = st + ed ;int mid = tmp >> 1;面试官: 你不用这么复杂?我:???然后 面试官又提...原创 2019-05-27 21:22:06 · 207 阅读 · 0 评论