
算法题
各种刷的题
EEEEEEcho
这个作者很懒,什么都没留下…
展开
-
异或运算的特点
一个数和 0 做 XOR 运算等于本身:a⊕0 = a一个数和其本身做 XOR 运算等于 0:a⊕a = 0XOR 运算满足交换律和结合律:a⊕b⊕a = (a⊕a)⊕b = 0⊕b = b原创 2020-12-01 22:43:55 · 927 阅读 · 0 评论 -
LeetCode 350. 两个数组的交集 II
看到一个Python大佬写的题解,使用collections.Counter,十分漂亮不得不记录下来给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。class Intersect:原创 2020-10-19 17:43:01 · 119 阅读 · 0 评论 -
Java实现求二叉树的高度
package com.qiye;import java.util.LinkedList;import java.util.Queue;class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; }public class Solution2 { /** ...原创 2020-04-03 17:48:44 · 3359 阅读 · 0 评论 -
北京邮电大学复试机试(5)
题目描述给定一个n*n的矩阵,求该矩阵的k次幂,即P^k。输入描述:第一行:两个整数n(2<=n<=10)、k(1<=k<=5),两个数字之间用一个空格隔开,含义如上所示。接下来有n行,每行n个正整数,其中,第i行第j个整数表示矩阵中第i行第j列的矩阵元素Pij且(0<=Pij<=10)。另外,数据保证最后结果不会超过10^8。输出描述:对于每组测试...原创 2020-02-22 15:45:39 · 401 阅读 · 0 评论 -
北京邮电大学复试机试(4)
题目描述查找一个数组的第K小的数,注意同样大小算一样大。 如 2 1 3 4 5 2 第三小数为3。输入描述:输入有多组数据。每组输入n,然后输入n个整数(1<=n<=1000),再输入k。输出描述:输出第k小的整数。示例1输入62 1 3 5 2 23输出3思路将数据放到集合去重,去重之后排序import java.util.Arrays;impo...原创 2020-02-22 12:07:41 · 231 阅读 · 0 评论 -
北京邮电大学复试机试(3)
题目描述第一行输入一个数,为n,第二行输入n个数,这n个数中,如果偶数比奇数多,输出NO,否则输出YES。输入描述:输入有多组数据。每组输入n,然后输入n个整数(1<=n<=1000)。输出描述:如果偶数比奇数多,输出NO,否则输出YES。示例1输入51 5 2 4 3输出YES思路:水题public class OddAndEven { /** ...原创 2020-02-22 11:52:00 · 453 阅读 · 0 评论 -
北京邮电大学复试机试(2)
题目描述哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。输入描述:输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。输出描述:输出权值。示例1输入51 2 2 5 9输出37思路:...原创 2020-02-22 11:40:41 · 415 阅读 · 0 评论 -
2018校招真题编程题(爱奇艺)拼凑正方形
题目描述牛牛有4根木棍,长度分别为a,b,c,d。羊羊家提供改变木棍长度的服务,如果牛牛支付一个硬币就可以让一根木棍的长度加一或者减一。牛牛需要用这四根木棍拼凑一个正方形出来,牛牛最少需要支付多少硬币才能让这四根木棍拼凑出正方形。输入描述:输入包括一行,四个整数a,b,c,d(1 ≤ a,b,c,d ≤ 10^6), 以空格分割输出描述:输出一个整数,表示牛牛最少需要支付的硬币示例1...原创 2020-03-05 20:52:06 · 538 阅读 · 0 评论 -
2018校招真题编程题(爱奇艺)字符串价值
题目描述有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值例如: 字符串"abacaba",里面包括4个’a’,2个’b’,1个’c’,于是这个字符串的价值为4 * 4 + 2 * 2 + 1 * 1 = 21牛牛有一个字符串s,并且允许你从s中移除最多k个字符,你的目标是让得到的字符串的价值最小。输入描述:输入包括两行,第一行一个...原创 2020-03-04 11:46:53 · 262 阅读 · 0 评论 -
2018校招真题编程题(爱奇艺)排序
牛牛有一个长度为n的整数序列,牛牛想对这个序列进行重排为一个非严格升序序列。牛牛比较懒惰,他想移动尽量少的数就完成重排,请你帮他计算一下他最少需要移动多少个序列中的元素。(当一个元素不在它原来所在的位置,这个元素就是被移动了的)输入描述:输入包括两行,第一行一个整数n(1 ≤ n ≤ 50),即序列的长度第二行n个整数x[i](1 ≤ x[i] ≤ 100),即序列中的每个数输出描述:输...原创 2020-03-03 23:05:12 · 264 阅读 · 0 评论 -
2018校招真题编程题(爱奇艺)回文素数
题目描述如果一个整数只能被1和自己整除,就称这个数是素数。如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666如果一个数字既是素数也是回文数,就称这个数是回文素数牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。输入描述:输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)输出描述:输出一个整数,表示区间内...原创 2020-03-03 22:49:39 · 361 阅读 · 1 评论 -
2018校招真题编程题(爱奇艺)循环数比较
题目描述对于任意两个正整数x和k,我们定义repeat(x, k)为将x重复写k次形成的数,例如repeat(1234, 3) = 123412341234,repeat(20,2) = 2020.牛牛现在给出4个整数x1, k1, x2, k2, 其中v1 = (x1, k1), v2 = (x2, k2),请你来比较v1和v2的大小。输入描述:输入包括一行,一行中有4个正整数x1, k...原创 2020-03-01 22:46:32 · 214 阅读 · 0 评论 -
2018校招真题编程题(网易)小易喜欢的数列
题目描述小易非常喜欢拥有以下性质的数列:1、数列的长度为n2、数列中的每个数都在1到k之间(包括1和k)3、对于位置相邻的两个数A和B(A在B前),都满足(A <= B)或(A mod B != 0)(满足其一即可)例如,当n = 4, k = 7那么{1,7,7,2},它的长度是4,所有数字也在1到7范围内,并且满足第三条性质,所以小易是喜欢这个数列的但是小易不喜欢{4,4,...转载 2020-03-01 22:07:09 · 330 阅读 · 0 评论 -
2018校招真题编程题(网易)疯狂队列
题目描述小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值是最小的,他们当然决定按照疯狂值最大的顺序来进行列队。现在给出n个学生的身高,请计...原创 2020-03-01 21:25:41 · 372 阅读 · 0 评论 -
2018校招真题编程题(网易)操作序列
题目描述小易有一个长度为n的整数序列,a_1,…,a_n。然后考虑在一个空序列b上进行n次以下操作:1、将a_i放入b序列的末尾2、逆置b序列小易需要你计算输出操作n次之后的b序列。输入描述:输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。第二行包括n个整数a_i(1 ≤ a_i ≤ 10^9),即序列a中的每个整数,以空格分割。输出描述:在一行...原创 2020-02-26 10:46:10 · 626 阅读 · 0 评论 -
2018校招真题编程题(网易)交错01串
题目描述如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: “1”,“10101”,"0101010"都是交错01串。小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。输入描述:输入包括字符串s,s的长度length(1 ≤ length ≤ 50),字符串中只包含’0...原创 2020-02-09 22:15:55 · 571 阅读 · 1 评论 -
2018校招真题编程题(网易)等差数列
题目描述如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列输入描述:输入包括两行...原创 2020-02-09 21:49:33 · 335 阅读 · 0 评论 -
2018校招真题编程题(网易)彩色的砖块
拼多多那一道广搜的题是真的不会,之后我再看题解补一下吧。时间紧,肯定补上import java.util.HashSet;import java.util.Scanner;public class ColorfulBlocks { /** * 小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s, * s中每个...原创 2020-02-09 21:33:05 · 290 阅读 · 0 评论 -
2018校招真题编程题(拼多多) 六一儿童节
题目描述六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目。老师的目标是将巧克力分发给孩子们,使得最多的小孩上台表演。可以保证每个w[i]> 0且不能将多块巧克力分给一个孩子或将一块分给多个孩子。输入描述:第一行:n,表示h数组元素个数第二行:n个h数组元...原创 2020-02-08 21:22:22 · 356 阅读 · 0 评论 -
2018校招真题编程题(拼多多) 大整数相乘
import java.util.Scanner;public class BigIntegerMultipule { /** * 有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。 * https://www.jianshu.com/p/8e384e0491df * @param args */...原创 2020-02-05 20:55:26 · 208 阅读 · 0 评论 -
2018校招真题编程题(拼多多)最大乘积
import java.util.Arrays;import java.util.Scanner;public class FindMaxMutiple { /** * 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) * @param args */ public st...原创 2020-02-05 17:50:33 · 141 阅读 · 0 评论