• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
tanshoudong
博客园 首页 新随笔 联系 订阅 订阅 管理

随笔分类 -  数据结构与算法

上一页 1 2 3 4 下一页

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

上一页 1 2 3 4 下一页

公告


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3