摘要:
题目: 求N个元素的逆序数 分析: 解法一:穷举,时间复杂度为O(n2) 解法二:使用归并排序计算逆序数,时间复杂度O(N*lngN) 使用分治思想,以mid值将序列分为左序列(left->mid),右序列(mid+1->right)。将左右子序列排序好之后,进行合并。合并时获得逆序数,因为左序列已 阅读全文
摘要:
题目:略 分析:问题的本质是判断目标字符串在构建过程中是否可以使用一次复制粘贴。 1.问题限制:字符串的复制粘贴只能使用一次,且需要从最开始复制。 2.首先判断目标字符的长度是否为偶数,不是偶数则减一。 3.从后往前检索,每次回退2个单位。如果满足条件就直接退出。 code: 1 import ja 阅读全文
摘要:
题目:略 分析: 1.建立猜拳二维表:剪刀、石头、布->0,1,2 2.将猜拳符号转化为下标。 3.分别计算牛妹出左手和出右手的概率。 code: 1 import java.util.*; 2 3 public class Main { 4 public static void main(Stri 阅读全文
摘要:
题目:忘了 解析: 1.首先判断给定的值是否合法,合法继续。 2.根据给定值抽取出特殊字符串序列的特征值 3.依次抽取出每个字符串的特征值与步骤2的特征值比较(直接使用jdk提供的方法) code: 1 import java.util.*; 2 3 public class Main { 4 pu 阅读全文
摘要:
还没有找到解决思路 阅读全文
摘要:
题目 牛牛有n张卡片,每张卡片要么是0,要么是5,牛牛能从其中选出若干张卡片,然后组成一些数字,现在请找出所有的可能的数字里面能整除90的最大的数字,不存在则输出-1。 解析 问题实质:如果一个数字里面的数的出现次数的累加和是9的倍数,那么他就可以被9整除。这题是90,只要我们在这个数末尾加0就可以 阅读全文
摘要:
参考的别人优雅代码的解析 https://blog.nowcoder.net/n/bfd2d079966e4d40ab53bf2ddd30152f?f=comment 阅读全文
摘要:
题目: 一天,牛妹找牛牛做一个游戏,牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的。操作共有三种,如下: 1.在当前数字的基础上加一,如:4转化为5 2.在当前数字的基础上减一,如:4转化为3 3.将当前数字变成它的平方,如:4转化为16 你能 阅读全文
摘要:
问题: 给定一个未排序数组,找出其中最长的等差数列(无需保证数字顺序)。 分析: 该问也属于动态规划问题范畴,因为当前问题依赖子问题。 (1)首先对数组进行升序排序,数组自然构成不同的等差数列。 (2)子问题结果记录。使用map记录一对多结果。因为相同的公差d对应着不同的数列。我选择的数据结构为嵌套 阅读全文
摘要:
问题: 给定一个数组,每个元素范围是0~K(K < 整数最大值2^32),将该数组分成两部分,使得 |S1- S2|最小,其中S1和S2分别是数组两部分的元素之和。 分析: 问题本质是01背包问题。 (1)每个元素值既是价值也是重量。 (2)背包承重上限为所有元素总和的一半;设为mid = sum/ 阅读全文