逆序对数
摘要:题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 解题思路: 我们以数组{7,5,6,4}为例来分析统计逆序对的过程。每次扫描到一个数字的时
阅读全文
数据流中的中位数
摘要:题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 解题思路:
阅读全文
丑数
摘要:题目:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 解题思路: 根据丑数的定义,丑数应该是另一个丑数乘以2、3或者5的结果(1除外)。因此我们可以创建一个集合,里
阅读全文
位运算总结
摘要:结论四: 此题考察的是异或运算的特点:即两个相同的数异或结果为0。 此题用了两次异或运算特点: (1)第一次使用异或运算,得到了两个只出现一次的数相异或的结果。 (2)因为两个只出现一次的数肯定不同,即他们的异或结果一定不为0,一定有一个位上有1。另外一个此位上没有1,我们可以根据此位上是否有1,将
阅读全文
猿辅导笔试题
摘要:题目是这样的:一个一维数组中只有1和-1,实现程序,求和为0的最长子串长度,并在注释中给出时间和空间复杂度。思路就是在i从0到n,计算sum(i),sum(i)表示从0到i的元素之和。并保存在字典dic中,value是索引i,在往后的遍历中每得到一个sum(i)就查看dic的keys是否已有此sum
阅读全文
leetcode第40题:组合总和II
摘要:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 示例 2:输入:
阅读全文
leetcode第39题:组合综合
摘要:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1: 示例
阅读全文
leetcode31题:下一个排列
摘要:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,
阅读全文
leetcode第27题:移除指定元素
摘要:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 思路如下: 既然问题要求我们就地删
阅读全文
leetcode第26题:删除排序数组的重复项
摘要:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 数组完成排序后,我们可以放置两个指针 ii 和 jj,其中 ii 是慢指针,而 jj 是快指针。只要 num
阅读全文
leetcode第15题:三数之和
摘要:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合
阅读全文
leetcode第11题:盛水最多的容器
摘要:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2 图
阅读全文
leetcode第四题:两个有序数组的中位数
摘要:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: 示例 2: 已测试通过
阅读全文
leetcode第72题:编辑距离
摘要:给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 示例 1: 示例 2: 首先定义状态矩阵,dp[m][n],其中m为word1的长度+1,n为word2的长度+1,为什么+1?因为要考虑如果word1或w
阅读全文
求二叉树中距离最大的两个节点
摘要:给定一个二叉树,求出该二叉树中任意两个节点的最远距离(两个节点的距离是指两个节点之间边的条数,可能不过根节点。) 如下图所示的二叉树的最远距离是3
阅读全文
网易有道面试总结
摘要:此次算是网易的秋招补录了吧,也不知道从哪里把我挖出来,让我去面试。面试的岗位是数据挖掘,总共有四轮面试,全是技术面试,岗位虽然是数据挖掘,但是面试官问的问题绝大多数是偏自然语言处理的, 面试的内容不再一一阐述,下面就其中个人觉得比较有意思的问题作以下记录。 1.第一个问题是拼写纠正问题,面试官写了这
阅读全文
leetcode57:插入区间
摘要:给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 示例 2:
阅读全文
leetcode56:合并区间
摘要:给出一个区间的集合,请合并所有重叠的区间。(解题思想来源于:https://blog.csdn.net/qq_34364995/article/details/80788049 ) 示例 1: 示例 2: 1.将intervals按每一个元素的start进行升序排列。 2.此时后一个值的start一
阅读全文
leetcode55:跳跃游戏
摘要:解题思路1: 从头往后找每一个为0的元素,判断这个0能够跳过,所有的0都能跳过,则返回True,否则返回False 解题思路2: 从前往后遍历数组,设置一个访问到当前位置i时最远可调到的距离maxlengh,maxlengh如果大于等于数组长度,则返回True,如果访问的位置i赶上maxlengh时
阅读全文
计数排序
摘要:计数排序是一种O(n)的排序算法,其思路是开一个长度为 maxValue-minValue+1 的数组,然后 分配。扫描一遍原始数组,以当前值- minValue 作为下标,将该下标的计数器增1。收集。扫描一遍计数器数组,按顺序把值收集起来。举个例子, nums=[2, 1, 3, 1, 5] ,
阅读全文