自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 140

原创 LC5627 石子游戏VII

区间DP+博弈论题目描述:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。有 n 块石子排成一排。每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头,并获得与该行中剩余石头值之 和 相等的得分。当没有石头可移除时,得分较高者获胜。鲍勃发现他总是输掉游戏(可怜的鲍勃,他总是输),所以他决定尽力 减小得分的差值 。爱丽丝的目标是最大限度地 扩大得分的差值 。给你一个整数数组stones ,其中 stones[i] 表示 从左边开始 的第 i 个石头的值,如果爱丽丝和.

2020-12-13 20:53:58 122

原创 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 108

原创 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 69

原创 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 66

原创 区间DP--LeetCode5498石子游戏

题目描述:几块石子 排成一行 ,每块石子都有一个关联值,关联值为整数,由数组 stoneValue 给出。游戏中的每一轮:Alice 会将这行石子分成两个 非空行(即,左侧行和右侧行);Bob 负责计算每一行的值,即此行中所有石子的值的总和。Bob 会丢弃值最大的行,Alice 的得分为剩下那行的值(每轮累加)。如果两行的值相等,Bob 让 Alice 决定丢弃哪一行。下一轮从剩下的那一行开始。只 剩下一块石子 时,游戏结束。Alice 的分数最初为 0 。返回 Alice 能够获得的最大分数 。

2020-08-23 15:37:26 164

原创 归并排序--求数组的逆序对

逆序对概念:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。题目描述:输入一个数组,求出这个数组中的逆序对的总数。样例:输入[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 107

原创 快速排序---第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 354

原创 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 1505

原创 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 189

原创 最长上升子序列

题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度样例输入:[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 92

原创 USACO06NOV玉米田 Corn Fields

题目描述农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形的土地。John打算在牧场上的某几格里种上美味的草,供他的奶牛们享用。遗憾的是,有些土地相当贫瘠,不能用来种草。并且,奶牛们喜欢独占一块草地的感觉,于是John不会选择两块相邻的土地,也就是说,没有哪两块草地有公共边。John想知道,如果不考虑草地的总块数,那么,一共有多少种种植方案可供他选择?(当然,把新牧场完全荒废也是一种方案)输入格式第一行:两个整数M

2020-05-29 16:01:52 175

原创 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 151

原创 JDBC基本概念

JDBC概念:Java DataBase Connectivity Java数据库连接 Java语言操作数据库JDBC本质:Java定义了一套操作所有关系型数据库的规则,即接口各个数据库厂商去实现这套接口(JDBC),提供数据库驱动jar包,即将自己写好的实现类打包成jar包我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类类DriverManager:创建驱动...

2020-04-14 15:06:00 206

原创 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 620

原创 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 99

原创 单调队列实现滑动窗口最大值问题

暴搜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 95

原创 Java单元测试+反射+注解

今日内容Junit单元测试(如何编写测试类的代码和主方法)反射(后期学习框架的灵魂)注解Junit使用步骤定义一个测试类(也叫测试用例)建议:测试类名:被测试的类+Test包名:xxx.xxx.test定义测试方法(可以独立运行)建议:方法名:test+测试的方法名返回值:void参数:空参给方法加上 @Test 注解导入Junit依赖环境 不然步骤3会报错判断结...

2020-04-10 19:00:01 200

原创 MySQL基础知识汇总

MySQL是一种 数据库操作软件SQL(结构化查询语言):1. DDL(数据定义语言) 用来定义数据库、表、列等信息2. DML(数据操作语言) 用来 增删改 insert delete update 数据库中表的数据(也称为记录)3. DQL(数据查询语言) 用来 查询 数据库中表的数据(满足一定条件) select where4. DCL(数据控制语言) 用来 设置 数据库的访问权...

2020-04-10 18:46:29 88

原创 常见排序算法

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 81

原创 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 155

原创 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 87

原创 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 74

原创 Java 接口

//接口public interface MyInterface { // 不能有构造方法,这是接口,不是类 // 抽象方法 public abstract void methodAbstract(); public default void methodDefault(){ System.out.println("接口中的默认方法"); ...

2020-02-22 23:26:26 51

原创 Java 抽象类

//抽象类public abstract class AbstractClass { public AbstractClass() { System.out.println("抽象类的构造方法"); } public void methodCommon(){ System.out.println("抽象类中的成员方法"); ...

2020-02-22 23:10:38 110 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 78

原创 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 349

原创 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 50

原创 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 67

原创 Java static 静态变量和静态方法

//主类/** * Created by tianxin on 2020/2/15. * 静态方法或静态变量均属于类 不属于对象 * 没有static关键字 就必须先创建对象 才能使用 * 有static关键字 无需创建对象 直接使用 类名称.成员方法 即可使用 * * 静态修饰的变量和方法存储在 方法区中的静态区中 * 静态变量:类名称.静态变量 * 静态方法: 类名称.静态...

2020-02-15 21:53:43 86

原创 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 109

原创 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 90

原创 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 76

原创 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 193

原创 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 82

原创 成员变量和局部变量的区别

/** * Created by tianxin on 2020/2/10. * 定义一个 学生类 * 成员变量(属性) * String name; //姓名 * int age; //年龄 * 成员方法(行为) * public void eat(){} //吃饭 * public void sleep(){} //睡觉 * ...

2020-02-11 11:46:17 81

原创 面向对象和面向过程

import java.util.Arrays;/** * Created by tianxin on 2020/2/10. * 面向过程:当需要实现一个功能时,每一个步骤都要自己实现,亲历亲为 * 面向对象:当需要实现一个功能时,不关心具体实现的步骤,找一个已经实现此功能的人帮我做事 * * 类与对象的关系: * 类是对象的模板,对象是类的实体 */public class ...

2020-02-11 11:40:17 61

原创 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 104

原创 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 155

原创 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 280

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除