- 博客(47)
- 收藏
- 关注
原创 LC1705-吃苹果的最大数目
题目描述有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果。在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i + days[i] 天时)腐烂,变得无法食用。也可能有那么几天,树上不会长出新的苹果,此时用 apples[i] == 0 且 days[i] == 0 表示。你打算每天 最多 吃一个苹果来保证营养均衡。注意,你可以在这 n 天之后继续吃苹果。给你两个长度为 n 的整数数组 days 和 apples ,返回你可以吃掉的
2021-01-02 22:02:04
205
原创 LC5627 石子游戏VII
区间DP+博弈论题目描述:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。有 n 块石子排成一排。每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头,并获得与该行中剩余石头值之 和 相等的得分。当没有石头可移除时,得分较高者获胜。鲍勃发现他总是输掉游戏(可怜的鲍勃,他总是输),所以他决定尽力 减小得分的差值 。爱丽丝的目标是最大限度地 扩大得分的差值 。给你一个整数数组stones ,其中 stones[i] 表示 从左边开始 的第 i 个石头的值,如果爱丽丝和.
2020-12-13 20:53:58
211
原创 LC1664生成平衡数组的方案数
题目描述给你一个整数数组 nums 。你需要选择 恰好 一个下标(下标从 0 开始)并删除对应的元素。请注意剩下元素的下标可能会因为删除操作而发生改变。比方说,如果 nums = [6,1,7,4,1] ,那么:选择删除下标 1 ,剩下的数组为 nums = [6,7,4,1] 。选择删除下标 2 ,剩下的数组为 nums = [6,1,4,1] 。选择删除下标 4 ,剩下的数组为 nums = [6,1,7,4] 。如果一个数组满足奇数下标元素的和与偶数下标元素的和相等,该数组就是一个 平衡数
2020-12-06 18:06:10
170
原创 POJ 3061 Subsequence
前缀和 + 二分import java.util.Scanner;public class Test7 { int MAX_N = 100005; int[] a = new int[MAX_N]; int[] sum = new int[MAX_N]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int s = sc.n
2020-10-03 21:30:44
115
原创 LeetCode 704 & 35 & 69
题目704给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入: nums = [-1,0,3,5,9,12], target = 9输出: 4输入: nums = [-1,0,3,5,9,12], target = 2输出: -1class Solution { public int search(int[] nums, int target) {
2020-10-03 12:10:06
125
原创 区间DP--LeetCode5498石子游戏
题目描述:几块石子 排成一行 ,每块石子都有一个关联值,关联值为整数,由数组 stoneValue 给出。游戏中的每一轮:Alice 会将这行石子分成两个 非空行(即,左侧行和右侧行);Bob 负责计算每一行的值,即此行中所有石子的值的总和。Bob 会丢弃值最大的行,Alice 的得分为剩下那行的值(每轮累加)。如果两行的值相等,Bob 让 Alice 决定丢弃哪一行。下一轮从剩下的那一行开始。只 剩下一块石子 时,游戏结束。Alice 的分数最初为 0 。返回 Alice 能够获得的最大分数 。
2020-08-23 15:37:26
252
原创 归并排序--求数组的逆序对
逆序对概念:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。题目描述:输入一个数组,求出这个数组中的逆序对的总数。样例:输入[1,2,3,4,5,6,0]输出6public class AcWing65 { int cnt; public static void main(String[] args) { int[] nums = {3, 4, 1, 0, 2}; int n = nums.length;
2020-08-21 11:51:24
160
原创 快速排序---第K个小的数
给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列的第k小的数是多少。时间复杂度O(nlogn)public class AcWing786 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int[] nums = n
2020-08-21 11:48:23
428
原创 Dijkstra算法(邻接矩阵+邻接表)两种写法
Dijkstra算法算法核心计算单源最短路径找到最短路径已经确定的顶点,从它出发更新其相邻顶点的最短距离更新完毕后,不再关注“最短路径已经确定的顶点”输入处理 int n = 4; // 顶点数 int[][] edges = {{1, 2}, {1, 3}, {2, 3}, {2, 4}, {3, 4}}; // 边 int[] vals = {2, 5, 4, 6, 2}; // 边的权重 与edges的边一一对应邻接矩阵写法计算从start顶点到end顶点的最
2020-07-19 16:57:58
1593
原创 LeetCode5454-子矩阵计算
统计全 1 子矩形题目描述给你一个只包含 0 和 1 的 rows * columns 矩阵 mat ,请你返回有多少个 子矩形 的元素全部都是 1输入mat = [[1,0,1],[1,1,0],[1,1,0]]输出13public int numSubmat(int[][] mat) { int n = mat.length; // n表示行数 int m = mat[0].length; // m表示列数 int[] sum = n
2020-07-05 16:25:37
249
原创 最长上升子序列
题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度样例输入:[10,9,2,5,3,7,101,18]输出:[2,5,7,101],最长上升子序列的长度是4,其中,最长上升子序列可能存在多个1.暴力枚举 private static int max; public static void main(String[] args) { int[] a = {10,9,2,5,3,7,101,18}; System.out.println(leng
2020-06-15 21:13:25
131
原创 USACO06NOV玉米田 Corn Fields
题目描述农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形的土地。John打算在牧场上的某几格里种上美味的草,供他的奶牛们享用。遗憾的是,有些土地相当贫瘠,不能用来种草。并且,奶牛们喜欢独占一块草地的感觉,于是John不会选择两块相邻的土地,也就是说,没有哪两块草地有公共边。John想知道,如果不考虑草地的总块数,那么,一共有多少种种植方案可供他选择?(当然,把新牧场完全荒废也是一种方案)输入格式第一行:两个整数M
2020-05-29 16:01:52
242
原创 LeetCode279完全平方数(暴搜dfs+记忆化dfs+动态规划+BFS)四种解法
暴搜dfsclass Solution { public int numSquares(int n) { return dfs(n); } public int dfs(int n){ int val = (int)Math.sqrt(n); if(val*val == n){ return 1;...
2020-04-17 19:03:38
201
原创 JDBC基本概念
JDBC概念:Java DataBase Connectivity Java数据库连接 Java语言操作数据库JDBC本质:Java定义了一套操作所有关系型数据库的规则,即接口各个数据库厂商去实现这套接口(JDBC),提供数据库驱动jar包,即将自己写好的实现类打包成jar包我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类类DriverManager:创建驱动...
2020-04-14 15:06:00
277
原创 Java根据修改配置文件动态操作数据库
创建一个utils包下的JDBCUtil来简化主函数中的冗余代码package JavaWeb.day05.utils;import java.io.FileReader;import java.io.IOException;import java.net.URL;import java.sql.*;import java.util.Properties;public class...
2020-04-14 15:01:27
696
原创 JDBC基本操作PreparedStatement
为了防止SQL注入的问题,使用PreparedStatement这一个接口,来替代StatementStatement对sql进行了拼接PreparedStatement对sql进行了预编译,这里采用占位符?public class JDBCLoginSafed { public static void main(String[] args) { Scanner sc...
2020-04-14 14:52:28
140
原创 单调队列实现滑动窗口最大值问题
暴搜public int[] maxSlidingWindow(int[] nums, int k) { if(k==1){ return nums; } int[] res = new int[nums.length-k+1]; for(int i=0;i<=nums.length-k;i++){ ...
2020-04-10 21:54:02
156
原创 Java单元测试+反射+注解
今日内容Junit单元测试(如何编写测试类的代码和主方法)反射(后期学习框架的灵魂)注解Junit使用步骤定义一个测试类(也叫测试用例)建议:测试类名:被测试的类+Test包名:xxx.xxx.test定义测试方法(可以独立运行)建议:方法名:test+测试的方法名返回值:void参数:空参给方法加上 @Test 注解导入Junit依赖环境 不然步骤3会报错判断结...
2020-04-10 19:00:01
261
原创 MySQL基础知识汇总
MySQL是一种 数据库操作软件SQL(结构化查询语言):1. DDL(数据定义语言) 用来定义数据库、表、列等信息2. DML(数据操作语言) 用来 增删改 insert delete update 数据库中表的数据(也称为记录)3. DQL(数据查询语言) 用来 查询 数据库中表的数据(满足一定条件) select where4. DCL(数据控制语言) 用来 设置 数据库的访问权...
2020-04-10 18:46:29
120
原创 常见排序算法
1.冒泡排序public static void main(String[] args) { int[] nums = {5,4,2,1,3}; bubbleSort(nums); System.out.println(Arrays.toString(nums)); } public static void bubbleSort(...
2020-04-09 20:18:11
112
原创 TopK问题(Java优先队列+构造堆实现)
1.构造堆实现【实现最小K个数,构造大顶堆实现】class Solution { public int[] getLeastNumbers(int[] nums, int k) { int[] heap = new int[k]; if(k<=0){ return heap; } ...
2020-04-06 15:14:15
197
原创 Java Comparable接口和Comparator接口的使用
//Comparable接口import java.util.ArrayList;import java.util.Collections;/** * Created by tianxin on 2020/3/2. * Collections工具类的sort方法中,只能堆List<E>集合进行排序 * 泛型E必须实现了Comparable接口中的compareTo()方法...
2020-03-02 15:50:55
111
原创 Java 集合类应用 斗地主
import java.util.ArrayList;import java.util.Collections;/** * Created by tianxin on 2020/3/1. * 模拟斗地主 洗牌和发牌 三个玩家 */public class DouDiZhu { public static void main(String[] args) { A...
2020-03-01 12:28:30
97
原创 Java 接口
//接口public interface MyInterface { // 不能有构造方法,这是接口,不是类 // 抽象方法 public abstract void methodAbstract(); public default void methodDefault(){ System.out.println("接口中的默认方法"); ...
2020-02-22 23:26:26
81
原创 Java 抽象类
//抽象类public abstract class AbstractClass { public AbstractClass() { System.out.println("抽象类的构造方法"); } public void methodCommon(){ System.out.println("抽象类中的成员方法"); ...
2020-02-22 23:10:38
184
1
原创 Java 继承练习 普通平均红包-练习
//用户类(父类)public class User { private String name; //姓名 private int totalMoney; //余额 public User() { } public User(String name, int totalMoney) { this.name = name; ...
2020-02-21 23:24:42
110
原创 Java Math练习题
/** * Created by tianxin on 2020/2/16. * 计算-10.8到5.9之间,绝对值大于6或者小于2.1的整数 有多少个 */public class DemoMathCal { public static void main(String[] args) { int cnt = 0; double min = -10...
2020-02-16 23:02:01
407
原创 Java Math类
/** * Created by tianxin on 2020/2/16. * Math类位于java.lang包下面 所以不用import导包 * 1.绝对值函数 public static int/long/float/double abs (参数):有多种重载形式 * 2.向上取整 public static double ceil(double a) 只有这一种形式 * 3.向...
2020-02-16 16:02:36
78
原创 Java Arrays类
import java.util.Arrays;/** * Created by tianxin on 2020/2/16. * Arrays是一个与数组相关的工具类 里面提供了大量的静态方法 * 常用方法: * 1. public static String toString(参数) * 将参数转化为字符串 默认格式: [元素1,元素2,...元素n] * * 2. publi...
2020-02-16 16:00:25
101
原创 Java static 静态变量和静态方法
//主类/** * Created by tianxin on 2020/2/15. * 静态方法或静态变量均属于类 不属于对象 * 没有static关键字 就必须先创建对象 才能使用 * 有static关键字 无需创建对象 直接使用 类名称.成员方法 即可使用 * * 静态修饰的变量和方法存储在 方法区中的静态区中 * 静态变量:类名称.静态变量 * 静态方法: 类名称.静态...
2020-02-15 21:53:43
138
原创 Java static关键字
JDK 1.8版本//主类public class DemoStudent { public static void main(String[] args) { Student stu1 = new Student("tianxin",24); Student.classroom = "101教室"; Student stu2 = new...
2020-02-15 18:58:09
157
原创 Java ArrayList集合类
import java.util.ArrayList;/** * Created by tianxin on 2020/2/13. * ArrayList是一个集合类 * ArrayList<E> E代表泛型 * E表示放在ArrayList里面的必须都是E类型 * ****E只能是引用类型 不能是基本类型**** * 注意事项: * 对于ArrayList集合类来...
2020-02-13 21:46:52
126
原创 Java对象数组的理解
public static void main(String[] args) { int[] a = new int[3]; System.out.println("a的地址="+a); //a的地址=[I@4554617c System.out.println("a的首元素="+a[0]); //a的首元素=0 System....
2020-02-12 12:14:07
116
原创 Java Random+Scanner猜数字练习
//不限制次数猜数字,直到猜中为止public static void main(String[] args) { Random random = new Random(); int num = random.nextInt(10)+1; //num的范围是[1,10] Scanner sc = new Scanner(System.in); ...
2020-02-12 11:43:12
248
原创 Java private+this+构造方法
//主类public class StudentMain { public static void main(String[] args) { Student stu1 = new Student("abc",18); Student stu2 = new Student(); System.out.println("stu1的名字是"+s...
2020-02-11 16:21:43
115
原创 成员变量和局部变量的区别
/** * Created by tianxin on 2020/2/10. * 定义一个 学生类 * 成员变量(属性) * String name; //姓名 * int age; //年龄 * 成员方法(行为) * public void eat(){} //吃饭 * public void sleep(){} //睡觉 * ...
2020-02-11 11:46:17
107
原创 面向对象和面向过程
import java.util.Arrays;/** * Created by tianxin on 2020/2/10. * 面向过程:当需要实现一个功能时,每一个步骤都要自己实现,亲历亲为 * 面向对象:当需要实现一个功能时,不关心具体实现的步骤,找一个已经实现此功能的人帮我做事 * * 类与对象的关系: * 类是对象的模板,对象是类的实体 */public class ...
2020-02-11 11:40:17
91
原创 LeetCode695
岛屿的最大面积,类似感染区域的最大面积考察:DFS每一个点可以扩散的最大面积,被它感染的区域里面的点不用再计算,用vis数组记录,最后求最大值//DFSpublic static void main(String[] args) { int[][] a = {{1,1,0},{1,1,0},{0,0,1}}; System.out.println(maxAr...
2020-02-09 22:22:12
156
原创 LeetCode547
朋友圈考察知识点:无向连通图的个数方法1:DFS方法2:BFS//DFSpublic static void main(String[] args) { int[][] a = {{1,1,0},{1,1,0},{0,0,1}}; System.out.println(findCircleNum(a)); //result=2 } pub...
2020-02-09 21:18:49
200
原创 Java内存模型+数组
数组概念:是一种容器,可以同时存放多个数据值数组特点:1.数组是一种引用数据类型2.数组中的多个数据的数据类型必须统一3.数组的长度在程序运行时不可以改变数组创建:1.动态初始化 int[] nums = new int[length]2.静态初始化 int[] nums = new int[]{1,2,3} 或者 int[] nums = {1,2,3}Java内存模型:...
2020-02-09 18:10:12
354
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人