![](https://img-blog.csdnimg.cn/20210726150919385.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
数据结构、算法、刷图
扬奇
道阻且长,行则将至!
展开
-
堆排序及其复杂度分析
以升序排序为例,大顶堆实现:package leetcode.sort.compare.select;import java.util.Arrays;public class HeapSort { public void downAdjust(int[] array, int parentIndex, int length) { int largestIndex = parentIndex; int lChildIndex = 2 * parent..原创 2022-01-17 11:38:10 · 2041 阅读 · 0 评论 -
Java位运算和几个常用的规律
一.异或 运算:无进位相加应用:1.不申请额外空间,交换两个数int a, b;a = a^b;b = a^b;a = a^b;2.提取最右边的1int n;int rightOne = n & (~n + 1);例如: n :11010100; ~n :00101011; ~n+1 :00101100;n&(~n+1):00000100;3.无进位相加,抹去最右边的1int n;int rightOne = n &am原创 2021-09-08 10:52:53 · 150 阅读 · 0 评论 -
08头条实习生面试_字典序的第K小数字
LeetCode(440)字典序的第K小数字思路:其实这是一个"十叉树",如下图:1)每个节点的子节点可以有十个,比如节点1的子节点可以是10~19、节点2的字节的可以是20~29、。。。但是由于n大小的限制,构成的并不是一个"满十叉树"。2)分析题目中给的例子可以知道,数字1的子节点有4个(10,11,12,13),而后面的数字2到9都没有子节点,那么这道题实...原创 2018-08-21 16:39:15 · 2857 阅读 · 1 评论 -
LeetCode31.下一个排列(字典序全排列)
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3→1,3,23,2,1→1,2,31,1,5→1,5,1思路分析:下面贴一张leetcode上官方解答...原创 2018-08-28 17:33:40 · 2997 阅读 · 1 评论 -
LeetCode435. 无重叠区间
LeetCode上提交 执行时间优于100%的提交记录给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间...原创 2018-08-30 19:44:18 · 592 阅读 · 0 评论 -
02头条后端笔试题_ 用户喜好
为了不断优化推荐效果,今日头条每天要存储和处理海量数据。假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用户(标号相连的一批用户)中,有多少用户对这类文章喜好值为k。因为一些特殊的原因,不会出现一个查询的用户区间完全覆盖另一个查询的用户区间(不存在L1<=L2<=R2<=R1)。输入描述:...原创 2018-08-08 20:28:27 · 1518 阅读 · 0 评论 -
01头条笔试题目-最大点
P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内)如下图:实心点为满足条件的点的集合。请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。输入描述:第一行输入点集的个数 N, 接下来 N...原创 2018-08-08 13:45:09 · 473 阅读 · 0 评论 -
06网易笔试题_数对
牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。牛牛希望你能帮他计算一共有多少个可能的数对。输入描述:输入包括两个正整数n,k(1 <= n <= 10^5, 0 <= k <= n - 1)。输出描述:对于每个测试用例, 输出一个正整数表...原创 2018-08-10 20:46:32 · 315 阅读 · 0 评论 -
05网易笔试题目_牛牛找工作
为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,分别表示工作的数量N(N<=1...原创 2018-08-10 11:15:41 · 333 阅读 · 0 评论 -
04头条笔试_字母交换
【编码题】字符串S由小写字母构成,长度为n。定义一种操作,每次都可以挑选字符串中任意的两个相邻字母进行交换。询问在至多交换m次之后,字符串中最多有多少个连续的位置上的字母相同?输入描述:第一行为一个字符串S与一个非负整数m。(1 <= |S| <= 1000, 1 <= m <= 1000000)输出描述:一个非负整数,表示操作之后,连续最长的相同字母...原创 2018-08-09 20:39:15 · 3964 阅读 · 0 评论 -
03头条笔试题目_手串
作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串——每个串珠要么无色,要么涂了若干种颜色。为了使手串的色彩看起来不那么单调,金主要求,手串上的任意一种颜色(不包含无色),在任意连续的m个串珠里至多出现一次(注意这里手串是一个环形)。手串上的颜色一共有c种。现在按顺时针序告诉你n个串珠的手串上,每个串珠用所包含的颜色分别有哪些。请你判断该手串上有多少种颜色不符合要求。即询问有多少种颜色在...原创 2018-08-09 16:19:37 · 530 阅读 · 0 评论 -
动态规划——背包问题
01背包问题01背包问题的状态转换方程f[i,j] = Max{ f[i-1,j-Wi]+Pi( j >= Wi ), f[i-1,j] }f[i,j]表示在前i件物品中选择若干件放在承重为 j 的背包中,可以取得的最大价值。Pi表示第i件物品的价值。决策:为了背包中物品总价值最大化,(如果第i件物品放得下的话)第 i件物品应该放入背包中吗 ?(当然,如果放不下,那就只能选择不放了)题目...原创 2018-03-31 10:15:54 · 228 阅读 · 0 评论