随笔分类 -  算法(Java)

由java编写的代码
摘要:每行有3个整数st、ed、val,分别表示项目的开始、截至时间和项目的报酬,相邻两数之间用空格隔开。st、ed、value取值均在32位有符号整数(int)的范围内,输入数据保证所有数据的value总和也在int范围内。 求最大报酬 和上面类似,这次我们求重叠的最大的value 小红书面试官说还能优 阅读全文
posted @ 2019-09-11 10:47 LeeJuly 阅读(178) 评论(0) 推荐(0) 编辑
摘要:1.一个无序有正有负数组,求乘积最大的三个数的乘积 结果只可能是最大的三个正数的乘积,或者两个最小的负数乘最大的正数 所以就是遍历一遍求最大的三个数和最小的两个数 2.判断某个数组分成n段,每段的和相同 这里是三段 就是遍历一遍找出那个除之后的值,然后遍历一遍 3.和至少为K 的最短子数组的长度 A 阅读全文
posted @ 2019-09-03 11:12 LeeJuly 阅读(110) 评论(0) 推荐(0) 编辑
摘要:通常用来求一个图中连通的个数。对于连通的图,会选一个节点作为他们的主节点 1.给定未排序的整数数组,找到最长连续元素序列的长度。您的算法应该以O(n)复杂度运行。(leetcode128) 对于任意一个连续的序列,其中所有节点的额主节点都是最大的那一个,所以这一题,可以用并差集的思想 2.顺丰科技8 阅读全文
posted @ 2019-08-30 15:53 LeeJuly 阅读(84) 评论(0) 推荐(0) 编辑
摘要:1.DFS判断有向图或者无欢图有没有环 2.用拓扑排序判断有向图是否存在回路(每次去掉入度为0的节点,直到任何一个节点入度都是0,那么这个有向图就是无环的) 3.求无环图最长路径 阅读全文
posted @ 2019-08-28 15:37 LeeJuly 阅读(366) 评论(0) 推荐(0) 编辑
摘要:1.给你一串含有c个正整数的数组, 想让你帮忙求出有多少个下标的连续区间, 它们的和大于等于x。 3 62 4 7 输出4 2.找出所有和为S的连续正数序列 3.找出一个无序数组中两个数和为sum的序列,先排序,然后前后指针,从头部和尾部逐渐移动,时间复杂度O(n*logn) 4.找出一个无序数组中 阅读全文
posted @ 2019-08-28 13:37 LeeJuly 阅读(813) 评论(0) 推荐(0) 编辑
摘要:这里用行号和列号构成的ArrayList作为hashmap的键,只要ArrayList里面的元素相同且按顺序,那么equals就是相同的,因为我去看了它的源码,equals就是比较每个位置的是不是相等。 所以这里这样用很好: 可以保证只要行号和列号相同且按顺序就能保证是唯一的,乘法麻烦一点 阅读全文
posted @ 2019-08-13 16:03 LeeJuly 阅读(528) 评论(0) 推荐(0) 编辑
摘要:问题:10g大小的数据,只有1g大小的内存?如何对他们进行排序? 基本思想分治加多路归并 读取10g的大文件,用指针读读入0到1g的数据到内存,然后排序,然后写入到小文件 就这样写好了10个排好序的小文件 对于普通的归并排序 每次读入,10个文件里面最前面的那个数,比较9次,将最小的那个写入大文件, 阅读全文
posted @ 2019-08-13 09:33 LeeJuly 阅读(598) 评论(0) 推荐(0) 编辑
摘要:1.主要是用两个数组,一个数组用存储数据,另外一个数组用来保存指针,添加的新元素都插入到数据数组的最后一位,插入删除都修改指针数组 然后我们用这个循环链表解决约舍夫环的问题 2.构建一个循环链表去实现这个功能 3.一个数组也是围成一个环,选择一个序列,不能相连,首尾不能相连,求和最大的序列。首尾不能 阅读全文
posted @ 2019-08-06 12:47 LeeJuly 阅读(751) 评论(0) 推荐(0) 编辑
摘要:二维dp数组 dp[i][j]前j个数字选取i段的最大和,一定要第j个数字 dp[i][j]=dp[i][j-1]+a[j-1] 这是指把第j个数字并入前面那些数字的最后一段 dp[i][j]=Max(dp[i][j],dp[i-1][m]+a[j-1]) 这是把第j个数字单独作为一段 时间复杂度( 阅读全文
posted @ 2019-07-28 21:45 LeeJuly 阅读(238) 评论(0) 推荐(0) 编辑
摘要:1.01背包,每种类型只能取一次 法1,二维Dp: 法2,一维Dp 法三,搜索 2.完全背包,每种物品可以无限用 3.多重背包,可以把它当做01背包来理解(依旧从后往前) 阅读全文
posted @ 2019-07-25 15:20 LeeJuly 阅读(141) 评论(0) 推荐(0) 编辑
摘要:1.两个数相加,不能用加号 两个数异或:相当于每一位相加,而不考虑进位; 两个数相与,并左移一位:相当于求得进位; 将上述两步的结果相加 2.统计n的二进制中1的个数 ,我们只需要知道n的二进制数中拿掉最右边的那个1的数的1的个数加1就行 3.统计一个长数组中,唯一不成对的两个数。 如果是单独的一个 阅读全文
posted @ 2019-07-24 16:02 LeeJuly 阅读(109) 评论(0) 推荐(0) 编辑
摘要:1.旋转数组找最小值 {3,4,5,1,2}为{1,2,3,4,5}的一个旋转数组 2.去一个排序数组中找距离target最近的节点的下标(二分法) 依次给出n个正整数A1,A2,… ,An,将这n个数分割成m段,每一段内的所有数的和记为这一段的权重, m段权重的最大值记为本次分割的权重。问所有分割 阅读全文
posted @ 2019-07-18 10:34 LeeJuly 阅读(198) 评论(0) 推荐(0) 编辑
摘要:两个栈实现队列: 判断栈的压入弹出序列 一个带加减乘除括号的表达式计算值 用栈来排序: 一个栈作为输入栈,一个作为输出栈,拿出输入栈栈顶元素,去和输出栈比较,找到第一个比他小的,上面的元素全部压入输入栈 找出来数组中每个元素后边第一个比它大的值A=[1,5,3,6,4,8,9,10] 输出[5, 6 阅读全文
posted @ 2019-07-18 10:05 LeeJuly 阅读(131) 评论(0) 推荐(0) 编辑
摘要:1.采用邻接表的数据结构: 2. 对一个01矩阵用BFS求最短路径 3.一个整数可以由多少个平方数组成(求最小的个数)BFS 两个数之间的差是一个平方数的话,代表两个数之间是连通的。 4.求最大的岛屿 5.和上面类似,也是在01矩阵中,上面是求岛屿的最大值,这里是求一共有多少个岛屿,每个岛屿是被0包 阅读全文
posted @ 2019-06-28 10:58 LeeJuly 阅读(161) 评论(0) 推荐(0) 编辑
摘要:1.最短路径问题: Dijkstra算法: 从源节点到末尾节点, S[]数组保存已经是最短路径的节点, 1.每次循环先找不在S[]中的节点的距离最小值节点u,这个节点一定会被保存到S中去 2.再更新其他节点到源节点的最短距离,通过这个最小节点u 再循环执行1,2 O(n^2) Floyd算法: 通过 阅读全文
posted @ 2019-04-25 10:24 LeeJuly 阅读(207) 评论(0) 推荐(0) 编辑
摘要:1.顺时针打印矩阵: 思路:先打印第一行,旋转数组。再打印第一行,一直到数组没有内容了。 2.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323 非常巧妙的方法: 3.只含有2,3,5的数称为丑数,按从小到大的第N个丑数,1是第一个丑数。 4.第一次只出现一次的字符, 阅读全文
posted @ 2019-04-15 20:31 LeeJuly 阅读(213) 评论(0) 推荐(0) 编辑
摘要:1.过河问题: 一次只能乘坐两人,坐两个人的时候是他们之间的最大值。每个人都有一个渡河时间T,船划到对岸的时间等于船上渡河时间较长的人所用时间,现在已知N个人的渡河时间T,他们最少要花费多少时间,才能使所有人都过河。 思路: n为1或2,直接过河 n为3,最长最短先过河,最短的回来接人 n为4, 策 阅读全文
posted @ 2019-04-14 13:58 LeeJuly 阅读(193) 评论(0) 推荐(0) 编辑
摘要:1.数字反转 2.找两个排序数组的中位数 3.有序数组旋转找最小值(直接搜索效率不高,采用2分法) 1,2,3,4,5->4,5,1,2,3 4.一个字符串向右移动n位 阅读全文
posted @ 2019-04-14 09:53 LeeJuly 阅读(197) 评论(0) 推荐(0) 编辑
摘要:1.KMP算法,判断子串是否在主串中存在,KMP的next数组还可以求字符串的最长重复子串,就是next数组中最大的值就是最长重复子串的长度。(我们需要从第1位每次往后都要重新求一次next数组) abcabcabcabc 最大重复子串就是abcabcabc 然后这里我们对于next数组的最后一位做 阅读全文
posted @ 2019-04-14 09:36 LeeJuly 阅读(172) 评论(0) 推荐(0) 编辑
摘要:1.计算二叉树的高度,两种方式 这里给的是哪些节点连接,所以先处理一下这些节点,把它变为二叉树。 2.计算二叉树的宽度,还是通过队列计算每一层节点的个数 3.二叉树的先序中序后序的非递归形式 给定一个数组,判断它是不是 某个二叉排序树的后序遍历的顺序 BST的后序序列的合法序列是,对于一个序列S,最 阅读全文
posted @ 2019-04-13 21:26 LeeJuly 阅读(201) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示