高频算法题
文章平均质量分 79
严太白
菊厂搬砖人
展开
-
高频算法和数据结构(五)
题目一已知一棵搜索二叉树上没有重复值的节点,现在有一个数组arr,是这棵搜索二叉树先序遍历的结果请根据arr生成整棵树并返回头节点https://leetcode.com/problems/construct-binary-search-tree-from-preorder-traversal/解题:方法一:递归思想,定义函数f(L,R),从L....R范围是一棵树的先序遍历结果,请建出整颗树把头部node返回方法二: 使用单调栈,生成nearBig数组,跟原来数组等原创 2021-09-22 20:45:24 · 259 阅读 · 1 评论 -
高频算法和数据结构(四)
题目一数组为{3, 2, 2, 3, 1},查询为(0, 3, 2)意思是在数组里下标0~3这个范围上,有几个2?答案返回2。假设给你一个数组arr,对这个数组的查询非常频繁,都给出来请返回所有查询的结果解题:预处理结构,生成如下一张表,这样要查1~4中有几个1,在这个表中用二分查就可以public static class QueryBox2 { private HashMap<Integer, ArrayList<Integer>&g.原创 2021-09-22 19:58:47 · 398 阅读 · 0 评论 -
高频算法和数据结构(三)
题目一https://leetcode.com/problems/longest-substring-without-repeating-characters/求一个字符串中,最长无重复字符子串长度解题:求子串和子数组的问题:先求以0结尾的答案,然后求1结尾的答案1)当前字符串上一次出现的位置2)i-1位置往左推的距离两个条件,哪个长要哪个public static int lengthOfLongestSubstring(String s) { if (s .原创 2021-09-16 21:24:47 · 276 阅读 · 0 评论 -
高频算法和数据结构(二)
题目一给定数组hard和money,长度都为Nhard[i]表示i号的难度, money[i]表示i号工作的收入给定数组ability,长度都为M,ability[j]表示j号人的能力每一号工作,都可以提供无数的岗位,难度和收入都一样但是人的能力必须>=这份工作的难度,才能上班返回一个长度为M的数组ans,ans[j]表示j号人能获得的最好收入解题:先按难度进行分组,同一个组只留下报酬最高的;再把每个组的组长进行排序,难度大的报酬反而小的去掉publ.原创 2021-09-15 21:42:37 · 250 阅读 · 0 评论 -
高频算法和数据结构(一)
题目一给定一个有序数组arr,代表坐落在X轴上的点给定一个正数K,代表绳子的长度返回绳子最多压中几个点?即使绳子边缘处盖住点也算盖住解题:方法一:贪心,单绳子的末尾来到某个点时,二分求解前面有哪些点是大于绳子开头的方法二:滑动窗口public static int maxPoint1(int[] arr, int L) { int res = 1; for (int i = 0; i < arr.length; i++) { int neares原创 2021-09-14 23:08:25 · 251 阅读 · 0 评论