
程序员养成计划
不定期分享程序员应该掌握的技术知识(编程语言、数据结构&算法、数据库、大数据、机器学习、深度学习、数学等)。
春卷同学
中南大学 软件工程 硕士研究生
展开
-
小红书秋招笔试题
后端题编程题:import java.util.Scanner;/** * 输入:10 [2,3,5] * 输出:4 */public class Main { static int count = 0; //全局变量。用于统计组合的个数 public static void main(String[] args) { Scanner sc =...原创 2019-08-19 11:21:40 · 2109 阅读 · 0 评论 -
Java读写3行文件
假设我们现在想从文件1读取3行内容,然后写入文件2。我们应该怎么做?代码如下:import java.io.*;public class ReadAndWriteFile { /** * 从源文件读写三行内容,复制到目标文件。 * 执行成功返回true,执行失败返回false * * @param sourceFilePath ...原创 2019-07-18 16:26:06 · 922 阅读 · 0 评论 -
MySQL如何查出两个用户的共同粉丝
在QQ中我们可以看到”共同好友”的功能。在微博中我们也可以看到“共同关注”的功能。这些功能其实原理都是一样的。都是查询两个用户的关注列表中是否有相同的属性。下面我们来看一下如何查出两个用户的共同粉丝。我们的例子中用到了两张表。一张是用户表(user)。另一张是粉丝表(follower),即某用户有哪些粉丝。这两张表中的数据如下图所示:user表follower表用户1...原创 2019-06-29 17:49:48 · 2762 阅读 · 0 评论 -
Java详解《剑指Offer第二版》面试题3:数组中重复的数字
题目一:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复的次数。请找出数组中任意一个重复的数字。例如如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。package com.offer.interview3;/*面试题3:数组中重复的数字: *//** * 题...原创 2019-05-16 22:10:30 · 245 阅读 · 0 评论 -
Java详解《剑指Offer第二版》面试题2:实现单例模式
题目:设计一个类,我们只能生成该类的一个实例单例模式的特点:单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。实现单例的三要素: 私有的构造方法; 指向自己实例的私有静态引用; 以自己实例为返回值的静态的公有方法。 单例模式分为懒汉式(需要时才去创建对象)和饿汉式(加载类的时候,就创建对象)。从速度和反...原创 2019-05-14 19:11:34 · 283 阅读 · 0 评论 -
0-1背包问题(Java详解)
动态规划的应用场景 适用动态规划的问题必须满足最优化原理、无后效性和重叠性。 a.最优化原理(最优子结构性质) 最优化原理可这样阐述:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简而言之,一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质。 b.无后效性 将各阶段按照一定的次序排列...原创 2019-04-16 17:14:38 · 20041 阅读 · 9 评论 -
2019春招,完美世界笔试第二题
我的解答:import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n = sc.nextInt(); int[] A = ...原创 2019-04-15 22:53:55 · 905 阅读 · 0 评论 -
2019春招,完美世界笔试第一题
我的解答:import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { /*1.读取数据*/ int n = sc.nextInt();/...原创 2019-04-16 15:09:28 · 1455 阅读 · 0 评论 -
利用java.util.Arrays包,来排序和填充数组
做笔试题时,可直接import java.util.*利用java.util.Arrays包里面的静态方法,来便捷地排序、填充数组import java.util.Arrays;import java.util.Collections;public class Test { public static void main(String[] args) { //升序排序...原创 2019-04-16 20:07:50 · 740 阅读 · 0 评论 -
关于八皇后问题以及回溯递归思想
作者:Stephen_Xie链接:https://www.jianshu.com/p/65c8c60b83b8来源:简书国际象棋中的皇后比中国象棋里的大车还厉害,皇后能横向,纵向和斜向移动,在这三条线上的其他棋子都可以被吃掉。所谓八皇后问题就是:将八位皇后放在一张8x8的棋盘上,使得每位皇后都无法吃掉别的皇后,(即任意两个皇后都不在同一条横线,竖线和斜线上),问一共有多少种摆法。此问...转载 2019-03-21 20:35:09 · 1027 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
转载自http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于...转载 2019-03-16 21:51:45 · 211 阅读 · 0 评论 -
Java如何读取数据,直到文件尾——while (sc.hasNext())
1 输入空格隔开的数字,然后求和import java.util.Scanner;public class Test1 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); double sum = 0; int ...原创 2019-03-15 14:53:17 · 3857 阅读 · 1 评论 -
关系数据库范式(1NF,2NF,3NF,BCNF,4NF,5NF)全解析
1 范式的基本概念设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF...原创 2019-03-11 21:37:55 · 21130 阅读 · 3 评论 -
华为模拟卷1
题目一有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?...原创 2019-09-03 13:41:04 · 461 阅读 · 0 评论 -
Java中nextInt()后,接nextLine() 会读到一个空行
Java中nextInt()后,接nextLine() 会读到一个空行import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext())...原创 2019-09-04 10:21:10 · 2439 阅读 · 0 评论 -
Java String.split()需要的转义字符
注意“/”和“-”,"&"不是转义字符。 String str="aaaa/aaaa/aaaa"; String[] strings=str.split("/"); for (int i = 0; i < strings.length; i++) { System.out.println(strings[i]...原创 2019-09-04 12:28:19 · 2189 阅读 · 1 评论 -
华为机试2016
[编程题]最高分是多少老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.输入描述:输入包括多组测试数据。 每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。 学生ID编号从1编到N。 第二行包含N个整数,代表这N个学生的初始成...原创 2019-09-04 12:29:11 · 771 阅读 · 0 评论 -
快速排序(Java实现)
import java.util.Arrays;public class Main { public static void main(String[] args) { int[] test1 = {1, 1, 1, 2, 3, 3, 3}; quickSort(test1); for (int i = 0; i < test1...原创 2019-08-24 13:24:37 · 341 阅读 · 0 评论 -
Java格式化输出System.out.printf()或System.out.format()
参考文献:https://blog.youkuaiyun.com/weixin_39590058/article/details/79875921https://blog.youkuaiyun.com/pickpocket/article/details/84126477https://www.runoob.com/w3cnote/java-printf-formate-demo.htmlpublic ...转载 2019-08-25 13:10:31 · 2389 阅读 · 0 评论 -
JAVA 进制转换的几个方法
进制转化在JAVA中已经封装好了.无论是常规的10转2,8,16,还是相对应的2,8,16进制转化为10进制的方法,当然也包括10->n进制,n进制转10进制的常规方法.都被封装在Integer对象中.10进制转化其他进制 对应的方法,参数:n(原10进制数据),r(进制), 返回值 10进制转2进制 Integer.toBinaryString(n)...转载 2019-08-25 17:33:52 · 796 阅读 · 0 评论 -
Java声明一个LIst类型的数组
ArrayList[] graphArrayList = new ArrayList[4];for(int i=0;i<graphArrayList.length;i++){ graphArrayList[i] = new ArrayList(); //数组的每一个元素都要new一个List对象,来初始化}...原创 2019-09-02 10:54:47 · 18692 阅读 · 0 评论 -
奇安信笔试编程题
package one;import java.util.*;/** * 3 1 5 21 10 7 * 0 3 3 1 5 3 * 3 * 3 1 5 21 10 * 0 3 3 1 5 * 5 */public class Main { public static int result; public static void main(Str...原创 2019-09-09 22:24:24 · 1936 阅读 · 0 评论