随笔分类 - 算法
摘要:给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!=b"。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。 只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true
阅读全文
摘要:给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序。 一次煎饼翻转的执行过程如下: 选择一个整数 k ,1 ⇐ k ⇐ arr.length 反转子数组 arr[0...k-1](下标从 0 开始) 例如,arr = [3,2,1,4] ,选择 k = 3 进行一次煎饼翻转,反转子数组
阅读全文
摘要:给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。 来
阅读全文
摘要:链接 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。 注意:1 ≤ k ≤ n ≤ 109。 import java.util.Scanner; class Solution { public static int findKthNumber(int n, int k) { lo
阅读全文
摘要:给定两个字符串s1和s2,问s2最少删除多少字符可以成为s1的子串?比如 s1 = "abcde",s2 = "axbc"返回1。s2删掉'x'就是s1的子串了。 import java.util.ArrayList; import java.util.Comparator; import java
阅读全文
摘要:链接 给定一组 互不相同 的单词, 找出所有 不同 的索引对 (i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。 import java.util.ArrayList; import java.util.Arrays; import java.util.
阅读全文
摘要:链接:https://www.nowcoder.com/questionTerminal/4d76096de4754712aa6ebecd9737fcf5 来源:牛客网 N个加油站组成一个环形,给定两个长度都是N的非负数组oil和dis(N>1),oil[i]代表第i个加油站存的油可以跑多少千米,d
阅读全文
摘要:在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。 说
阅读全文
摘要:给定一个路径数组 paths,表示一张图。paths[i]==j 代表城市 i 连向城市 j,如果 paths[i]==i, 则表示 i 城市是首都,一张图里只会有一个首都且图中除首都指向自己之 外不会有环。例如, paths=[9,1,4,9,0,4,8,9,0,1],由数组表示的图可以知道,城市
阅读全文
摘要:链接:https://www.nowcoder.com/questionTerminal/fe30a13b5fb84b339cb6cb3f70dca699 来源:牛客网 牛牛和 15 个朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法
阅读全文
摘要:给定数组 nums 由正整数组成,找到三个互不重叠的子数组的最大和。 每个子数组的长度为k,我们要使这3*k个项的和最大化。 返回每个区间起始索引的列表(索引从 0 开始)。如果有多个结果,返回字典序最小的一个。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/
阅读全文
摘要:给定一个正数1,裂开的方法有一种,(1) 给定一个正数2,裂开的方法有两种,(1和1)、(2) 给定一个正数3,裂开的方法有三种,(1、1、1)、(1、2)、(3) 给定一个正数4,裂开的方法有五种,(1、1、1、1)、(1、1、2)、(1、3)、(2、2)、 (4) 给定一个正数n,求裂开的方法数
阅读全文
摘要:给定一个非负数组arr,和一个正数m 返回arr的所有子序列中累加和%m之后的最大值。 import java.util.Arrays; import java.util.HashSet; import java.util.TreeSet; public class Main { public st
阅读全文
摘要:电子游戏“辐射4”中,任务“通向自由”要求玩家到达名为“Freedom Trail Ring”的金属表盘,并使用表盘拼写特定关键词才能开门。 给定一个字符串 ring,表示刻在外环上的编码;给定另一个字符串 key,表示需要拼写的关键词。您需要算出能够拼写关键词中所有字符的最少步数。 最初,ring
阅读全文
摘要:老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。 那么这样下来,老师至少需要准备多少颗糖果呢? 来源:力扣(Lee
阅读全文
摘要:链接:https://www.nowcoder.com/questionTerminal/16d1047e9fa54cea8b5170b156d89e38 来源:牛客网 一个不含有负数的数组可以代表一圈环形山,每个位置的值代表山的高度。比如,{3,1,2,4,5},{4,5,3,1,2}或{1,2,
阅读全文
摘要:有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头。 每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆石头的总数。 找出把所有石头合并成一堆的最低成本。如果不可能,返回 -1 。 来源:力扣(LeetCode) 链接:https://leetcod
阅读全文
摘要:链接 给 n 个城市(从 1 到 n),城市和无向道路成本之间的关系为3元组 [A, B, C](在城市 A 和城市 B 之间有一条路,成本是 C)我们需要从1开始找到的旅行所有城市的付出最小的成本。 import java.util.Arrays; import java.util.List; p
阅读全文
摘要:链接:https://www.nowcoder.com/questionTerminal/736e12861f9746ab8ae064d4aae2d5a9 来源:牛客网 开始时你的能力是0,你的目标是从0号怪兽开始,通过所有的怪兽。 如果你当前的能力,小于i号怪兽的能力,你必须付出money[i]的
阅读全文
摘要:import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Stack; public class TarjanA
阅读全文