java面试题
奔跑的年糕
每天都要进步一点
展开
-
分解一个long整数为质数因子相乘
输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 import java.util.*; public class Main{ public static void main(String[]args){ Scanner s=new Scanner (System.in);原创 2017-09-01 21:17:41 · 371 阅读 · 0 评论 -
动态规划 拼凑面额
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new原创 2018-01-19 21:03:05 · 330 阅读 · 0 评论 -
牛客算法笔记 最长公共子序列(动态规划)
对于两个字符串,请设计一个高效算法,求他们的最长公共子序列的长度,这里的最长公共子序列定义为有两个序列U1,U2,U3...Un和V1,V2,V3...Vn,其中Ui<Ui+1,Vi<Vi+1。且A[Ui] == B[Vi]。 给定两个字符串A和B,同时给定两个串的长度n和m,请返回最长公共子序列的长度。保证两串长度均小于等于300。 测试样例: "1A2C3D4B56",10,"B原创 2018-01-25 19:59:11 · 411 阅读 · 0 评论 -
牛客代码笔记 进制均值 (涉及到约分)
尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题,现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示为三位数1、7、3,按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11,。小B感兴趣的是,一个数A如果按原创 2018-01-23 19:39:14 · 145 阅读 · 0 评论 -
动态规划 最长非降序子序列
递推方程为: 如果前一个比当前的小,当前位置的子序列长度加1 /** * 最长非降序子序列 * @author 年糕 * */ public class DpMaxsub { public static void main(String[] args) { int num[]= {5,3,4,8,6,7}; int dp[]=new int[6]; int m原创 2018-01-22 21:11:18 · 355 阅读 · 0 评论 -
动态规划 需要最少的硬币数
假设给你 总额为11元,硬币种类为 1,3,5. 求最小的硬币数 递推公式为:d(i)=min{ d(i-vj)+1 } vj为面额 1,3,或者5 这个基本是最简单的动态规划算法,代码如下:public class Dpcoins { public static void main(String[] args) { int coins[]= {1,3,5}; int mone原创 2018-01-22 20:43:30 · 1916 阅读 · 1 评论 -
牛客算法笔记 好多鱼 (暴力枚举)
链接:https://www.nowcoder.com/questionTerminal/e3dd485dd23a42899228305658457927?orderByHotValue=0&page=1&onlyReference=false 来源:牛客网 牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入原创 2018-01-13 20:59:25 · 384 阅读 · 0 评论 -
牛客算法笔记 彩色宝石项链
链接:https://www.nowcoder.com/questionTerminal/321bf2986bde4d799735dc9b493e0065 来源:牛客网 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连原创 2018-01-13 19:14:45 · 890 阅读 · 0 评论 -
java面试题去除一个int整数的重复数字然后倒着输出
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。输入:9876673输出:37689 这道题的点睛之笔是构建了1个10个元素的数组,分别代表0-9 的10个数,如果有这个数就给这个数组该位置赋值为1。从而判断是否重复 import java.util.Scanner; public class Main{ public static void mai原创 2017-09-01 22:24:43 · 2414 阅读 · 0 评论 -
对一个double四舍五入,返回int
import java.util.*; public class Main{ public static void main(String[]args){ Scanner s=new Scanner(System.in); double a=s.nextDouble(); for(double i=0;i>=0;i++){原创 2017-09-01 21:33:45 · 360 阅读 · 0 评论 -
动态规划 割绳子
public class Offer14 { static int maxProduct(int n) { if(n<2) { return 0; } if(n==2) { return 1; } if(n==3) { return 2; } int[]products=new int[n+1]; products[0]=0; ...原创 2018-03-09 17:59:20 · 776 阅读 · 0 评论