随笔分类 - 算法
摘要:链接:https://www.nowcoder.com/questionTerminal/8b0152848ffd475eaa950278606fe70b 来源:牛客网 一条直线上有居民点,邮局只能建在居民点上。给定一个有序整形数组arr,每个值表示居民点的一维坐标,再给定一个正数num,表示邮局数
阅读全文
摘要:链接 给定一个正数数组arr,arr的累加和代表金条的总长度,arr的每个数代表金条要分成的长度。规定长度为k的金条分成两块,费用为k个铜板。返回把金条分出arr中的每个数字需要的最小代价。 import java.util.PriorityQueue; import java.util.Scann
阅读全文
摘要:链接 给定一个整型数组arr,代表数值不同的纸牌排成一条线,玩家A和玩家B依次拿走每张纸牌,规定玩家A先拿,玩家B后拿,但是每个玩家每次只能拿走最左和最右的纸牌,玩家A和玩家B绝顶聪明。请返回最后的获胜者的分数。 import java.util.Scanner; public class Main
阅读全文
摘要:中位数是有序序列最中间的那个数。如果序列的长度是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。 例如: [2,3,4],中位数是 3 [2,3],中位数是 (2 + 3) / 2 = 2.5 给你一个数组 nums,有一个长度为 k 的窗口从最左端滑动到最右端。窗口中有 k 个数,每次
阅读全文
摘要:请实现如下结构: TopRecord{ public TopRecord(int K) : 构造时事先指定好K的大小,构造后就固定不变了 public void add(String str) : 向该结构中加入一个字符串,可以重复加入 public List top() : 返回之前加入的所有字符
阅读全文
摘要:链接 给一非空的单词列表,返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。 import java.util.*; class Solution { public static List<String> topKFreque
阅读全文
摘要:给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 来源:力扣(LeetCode) 链接
阅读全文
摘要:链接 给定一个无序数组arr, 其中元素可正、可负、可0。给定一个整数k,求arr所有子数组中累加和为k的最长子数组长度 import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Ma
阅读全文
摘要:链接:https://www.nowcoder.com/questionTerminal/a4e34287fa1b41f9bd41f957efbd5dff 来源:牛客网 给定一个数组arr,该数组无序,但每个值均为正数,再给定一个正数k。求arr的所有子数组中所有元素相加和为k的最长子数组的长度 例
阅读全文
摘要:某个程序本来应该输出一个整数数组。但是这个程序忘记输出空格了以致输出了一个数字字符串,我们所知道的信息只有:数组中所有整数都在 [1, k] 之间,且数组中的数字都没有前导 0 。 给你字符串 s 和整数 k 。可能会有多种不同的数组恢复结果。 按照上述程序,请你返回所有可能输出字符串 s 的数组方
阅读全文
摘要:链接 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 class Solution { private Node[] solve(Node root) { Node head = root, tail = root; if (r
阅读全文
摘要:链接:https://www.nowcoder.com/questionTerminal/677a21987e5d46f1a62cded9509a94f2 来源:牛客网 先给出可整合数组的定义:如果一个数组在排序之后,每相邻两个数的差的绝对值都为1,或者该数组长度为1,则该数组为可整合数组。例如,[
阅读全文
摘要:有一些工作:difficulty[i] 表示第 i 个工作的难度,profit[i] 表示第 i 个工作的收益。 现在我们有一些工人。worker[i] 是第 i 个工人的能力,即该工人只能完成难度小于等于 worker[i] 的工作。 每一个工人都最多只能安排一个工作,但是一个工作可以完成多次。
阅读全文
摘要:链接 给定一个整数n,代表汉诺塔游戏中从小到大放置n个圆盘,假设开始所有圆盘都在左边的柱子上,那么用最优的办法把所有圆盘都移动到右边的柱子上的过程,就称为最优移动轨迹。给定一个整型数组arr, 其中只含有1、2和3,代表所有圆盘目前的状态,1代表左柱,2代表中柱,3代表右柱,a[i]的值代表第i+1
阅读全文
摘要:给定一个正数数组arr,返回该数组能不能分成4个部分,并且每个部分的累加和相等,切分位置的数不要。 例如: arr=[3, 2, 4, 1, 4, 9, 5, 10, 1, 2, 2] 返回true 三个切割点下标为2, 5, 7. 切出的四个子数组为[3,2], [1,4], [5], [1,2,
阅读全文
摘要:据说著名犹太历史学家 Josephus 有过以下故事:在罗马人占领乔塔帕特后,39 个犹太人与 Josephus 及他的朋友躲到一个洞中,39 个犹太人决定宁愿死也不要被敌人抓到,于是决定了一种自杀方式,41 个人排成一个圆圈,由第 1 个人开始报数,报数到 3 的人就自杀,然后再由下一个人重新报
阅读全文
摘要:import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.PriorityQueue; /** * author:左程云 */ public class SDEan
阅读全文
摘要:链接 已知一个消息流会不断地吐出整数1∼N,但不一定按照顺序吐出。如果上次打印的数为i,那么当i+1出现时,请打印i+1及其之后接收过的并且连续的所有数,直到1∼N全部接收并打印完,请设计这种接收并打印的结构 import java.util.HashMap; import java.util.Ma
阅读全文
摘要:链接 给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有字母都不相同)。 import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public s
阅读全文
摘要:给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。 请你返回让 s 成为回文串的 最少操作次数 。 「回文串」是正读和反读都相同的字符串。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/minimum-insertion
阅读全文

浙公网安备 33010602011771号