- 博客(44)
- 资源 (2)
- 收藏
- 关注
原创 IDEA配置管理Tomca
1、创建模块(First是我们创建的模块)2、右键->Add Framewords Support->勾上Web Application->OK3、File->Settings->Build,Executin,Deployment->Application Servers4、点“+”会自动跳出安装好的Tomecat路径,ok即可,没跳出就找一下路径。(Tomcat可以在官网免费下载)5、右键First模块->Open Modu...
2021-10-28 21:06:05 213
原创 力扣做题分享(12)盛最多水的容器,双指针求解最优解,完整思路,理解双指针思路。
题目:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。...
2021-10-28 19:02:21 206
原创 MySQL刷题:第二高的薪水(limit,ifnull的使用)
目录题目:题解:分析:题目:来源:力扣题解:select ifnull( (select distinct Salary from Employee order by Salary desc limit 1,1),null) as SecondHighestSalary分析:1,由于查询的是第二高的工资,所以我们想到的是先排序,排序完用limit来取出第二高的工资。limit...
2021-10-21 19:05:28 372
原创 数据库管理系统(封装增删改查)java
部分一(util):将常用代码封装方法的类,包括:注册、建立连接对象、数据库处理对象、对象销毁部分二(DAO):封装增删改查部分三(Test):测试空数据库:部分一代码(数据库密码打上*了):import java.sql.*;//部分一:注册、建立连接对象、数据库处理对象、对象销毁public class Student_table_Util { private Connection conn = null; private Prepar...
2021-10-20 19:28:05 1764 3
原创 在IDEA中的第一个MySQL程序,查询数据库中满足一定条件的内容(代码+注释)
jdbc编程:要先注册,然后连接,之后传sql语句,查询的话要处理查询结果(一般就是输出),最后一定要释放资源下面直接上代码和注释下面代码中,我把密码改成***了。仅供参考代码import java.sql.*;import java.util.Scanner;public class FirstMySql { public static void main(String[] args) { Connection conn=null; //这里是一个.
2021-10-08 17:21:41 848
原创 MySQL安装配置(可视化安装界面),可视化工具安装,连接IDEA,JDBC安装配置,在IDEA中书写第一个MySQL程序,超简单教程(超详细)。
前言我在刚刚mysql的时候,一直想找一个完整的从安装mysql到可视化工具以及连接IDEA的教程。由于知识面的原因,一直没有找到合适的教程,后面学习完mysql后,又看了一些视频和博客,找到了一个简单的方法解决上述问题。为帮助有相同上述问题的同学们,写了本篇文章。本篇文章主要解决MySQL安装配置,可视化工具安装,连接IDEA,JDBC安装配置。第一个mysql程序请看下一篇文章。安装MySQL5.6这里要安装5.6版本,因为企业用的,以及现在网上的教学都是基于5.6版本..
2021-10-08 12:55:43 26076 2
原创 java学习笔记(数据结构与算法14) KMP算法解决字符串匹配问题
问题:有一个字符串 str1= "BBC ABCDAB ABCDABCDABDE",和一个子串 str2="ABCDABD"现在要判断 str1 是否含有 str2,如果存在,就返回第一次出现的位置,如果没有,则返回-1KMP算法思路:1.总体思路:我们设置两个索引(i,j)来比较str1第i个元素和str2第j个元素是否相等。(1)如果相等则比较下一个(2)不相等,则j=next[j],这里next[j]的含义是“在str2字符串中,标号为j的字符前面的字符有多少和.
2021-10-02 19:12:21 122
原创 java学习笔记(数据结构与算法13)分治算法解决汉诺塔问题。
目录分治算法:汉诺塔问题:思路:代码:结果:分治算法:分治算法的基本思想:将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。分治算法解题的一般步骤:(1)分解,将要解决的问题划分成若干规模较小的同类问题;(2)求解,当子问题划分得足够小时,用较简单的方法解决;(3)合并,按原问题的要求,将子问题的解逐层合并构成原问题的解。汉诺塔问题:将A塔的所有圆盘移动到C塔。...
2021-10-02 15:39:31 156
原创 java基础总结(1)String类中常用的方法总结,解释加代码截图。
String类中常用的构造方法。第一个:String s = new String("");第二个:String s = ""; 最常用第三个:String s = new String(char数组);第四个:String s = new String(char数组,起始下标,长度);第五个:String s = new String(byte数组);第六个:String s = new String(byte数组,起始下标,长度)也可以以int数组,String...
2021-09-30 08:50:43 168
原创 剑指Offer-11(旋转数组的最小数字)二分查找的应用,思维的严密性。
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao...
2021-09-30 08:31:20 79
原创 java学习笔记(数据结构与算法12)贪心算法解决集合覆盖问题。贪心算法经典案例。
贪心算法:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。而在集合覆盖的问题中,贪心算法可以得到最优解。如果我们选择每个电台的权值(可以理解为电台支出)不同,而在不考虑权值时,可能有多个解,而贪心算法得到的是其中一个解,这个解不一定是权值最优的解。题目:...
2021-09-28 18:32:09 210
原创 java学习笔记(数据结构与算法11)动态规划解决背包问题。
目录题目:思路:代码:结果分析:题目:最基本的背包问题就是01背包问题(01 knapsack problem):一共有N件物品,第i(i从1开始)件物品的重量为w[i],价值为v[i]。在总重量不超过背包承载上限W的情况下,能够装入背包的最大价值是多少?思路:我们解决这个问题的思路是:1.创建一个back,back[i][j]代表放入尝试放入前i-1个物品时,占用j容量时,可取到的最大价值量。2.依次尝试每个物品,然后在赋值在尝试该物品时,不同容量下...
2021-09-28 10:36:25 262
原创 剑指Offer-04(二维数组中的查找)寻找可以排除一部分数据的点
题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 targ...
2021-09-27 18:18:12 102
原创 剑指Offer-53-2(0-n-1中缺失的数字)二分查找的应用。
目录题目:思路:代码:结果:题目:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例2:输入: [0,1,2,3,4,5,6,7,9]输出: 8来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof.
2021-09-27 14:38:10 87
原创 剑指Offer-53-1(在排序数组中查找数字I),二分查找的应用。
题目:统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof思路:1.这道题看起来非常容易,常规思路是遍..
2021-09-27 11:41:01 88
原创 力扣做题思路分享(11)网格游戏,通过分析简化题目
题目:给你一个下标从 0 开始的二维数组 grid ,数组大小为 2 x n ,其中 grid[r][c] 表示矩阵中 (r, c) 位置上的点数。现在有两个机器人正在矩阵上参与一场游戏。两个机器人初始位置都是 (0, 0) ,目标位置是 (1, n-1) 。每个机器人只会 向右 ((r, c) 到 (r, c + 1)) 或 向下 ((r, c) 到 (r + 1, c)) 。游戏开始,第一个 机器人从 (0, 0) 移动到 (1, n-1) ,并收集路径上单元格的全部点数。对于路径上所有单
2021-09-26 19:59:11 424
原创 力扣做题思路分享(10)增量元素之间的最大差值。简单的动态规划。
题目:给你一个下标从0开始的整数数组nums,该数组的大小为n,请你计算nums[j] - nums[i]能求得的最大差值,其中0 <= i < j < n且nums[i] < nums[j]。返回最大差值。如果不存在满足要求的i和j,返回-1。思路:拿到这道题,我们分析返回值的情况,要么是存在至少一个后面的大于前面的,这时返回差值;要么不存在,这时就返回-1。求最大差值的思路:我们可以用一个数来存储前面数的...
2021-09-26 19:19:59 398
原创 力扣做题思路分享(9)志愿者调配(力扣挑战赛),解方程的巧用。代码加思路。
目录题目:思路:注意:代码:结果:题目:「力扣挑战赛」有 n 个比赛场馆(场馆编号从 0 开始),场馆之间的通道分布情况记录于二维数组 edges 中,edges[i]= [x, y] 表示第 i 条通道连接场馆 x 和场馆 y(即两个场馆相邻)。初始每个场馆中都有一定人数的志愿者(不同场馆人数可能不同),后续 m 天每天均会根据赛事热度进行志愿者人数调配。调配方案分为如下三种:将编号为 idx 的场馆内的志愿者人数减半;将编号为 idx 的场馆相邻的场馆的志...
2021-09-26 09:53:52 247 1
原创 力扣做题思路分享(8)回文数
题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一.
2021-09-25 13:04:30 125
原创 java学习-剑指Offer(Day03_2)左旋字符串
题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro..
2021-09-24 17:26:22 94
原创 力扣做题思路分享(7)字符串转换整数
目录题目:思路:注意点:代码:结果:题目:请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的...
2021-09-24 15:26:51 101
原创 java学习-剑指Offer(Day03-1)替换空格
题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof思路:这道题比较容易,但值得注意的是,String字符串存储在字符串常量池,不能直接对String字符串进行修改,因此我们要先将其转化为StringBuilder..
2021-09-24 14:25:12 83
原创 java学习-剑指Offer(Day02_2)链表反转,多种方法解题。
题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof思路:拿到这种反转的题,一个月前刚刚学习数据结构的我,第一思路是通过栈来反转。栈解.
2021-09-24 10:46:56 124
原创 java学习-剑指Offer(Day02-1):复杂链表的复制
题目:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof思路:拿到这道题,相较于普通的链表复制,这道题的麻烦点在random指向的节点可能已经存在,也可能没创建,或者为null.
2021-09-24 10:04:58 98
原创 java学习笔记(数据结构与算法10)图的基本方法实现,深度优先搜索dfs,广度优先搜索bfs实现,java代码带注释。
import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;import java.util.List;public class Map { public static void main(String[] args) { Graph graph=new Graph(8); String vertexs[]={"1","2","3","4","5","6",".
2021-09-23 18:52:10 119 2
原创 力扣做题思路分享(6)寻找两个正序数组的中位数。通过索引锻炼思维能力。
题目:给定两个大小分别为 m 和 n 的正序(从小到大)数组nums1 和nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5示例 3:输入:nums1 =..
2021-09-23 17:02:35 113
原创 剑指Offer-09(用两个栈实现队列)
目录用两个栈实现队列:思路:代码:用两个栈实现队列:思路:1.stack_in用来压栈。2.stack_out用来弹栈,由于队列要先进先出,而队列只能先进后出,所以我们要保证stack_out最上面的数据是现有数据中最先进来的,即将stack_in中的元素反转过来(stack_in弹栈进入stack_out)。如果stack_out为空再进行下次压栈,否则顺序会乱。代码:package JianZhiOffer;import java.util.Stac..
2021-09-22 15:51:21 84
原创 力扣做题思路分享(5)字形变换,List和StringBuilder的组合使用。
目录题目:思路:代码:题目:将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "PAYPALISHIRING"行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s...
2021-09-22 14:52:55 516
原创 java学习笔记(数据结构与算法9)课程设计-压缩文件和解压文件,思路代码注释。
压缩思路:1.先将要压缩的句子或者文件内容存入一个byte数组中2.处理字符串,存入哈希表<byte值,出现频率>3.根据字符串处理后的哈希表创建一个哈夫曼树,字符都是叶子节点,出现频率越高,距离根结点越近4.生成哈夫曼编码表,保存在哈希表中<Byte值,编码>,比如字母i(本身有一个byte)会对应一个比如001这样的编码。 byte值对应的编码是根据从根结点到该节点的路径,往左走一步在编码后面加个“0”,右走加“1”5.根据哈夫曼编码表得到字符串对应的哈夫曼.
2021-09-21 16:38:01 216
原创 力扣做题思路分享(4)整数反转,字符串反转方法,数学计算方法,两种方法求解,代码加注释。
目录题目思路1:结果1:思路2:结果2:题目给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ,就返回 0。(这里是2的31次方)假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:...
2021-09-14 11:13:24 257
原创 力扣做题思路分享(3)心算挑战,通过部分排序减少时间,java代码实现加思路注释
目录题目:思路:代码:结果:题目:「力扣挑战赛」心算项目的挑战比赛中,要求选手从 N 张卡牌中选出 cnt 张卡牌,若这 cnt 张卡牌数字总和为偶数,则选手成绩「有效」且得分为 cnt 张卡牌数字总和。给定数组 cards 和 cnt,其中 cards[i] 表示第 i 张卡牌上的数字。 请帮参赛选手计算最大的有效得分。若不存在获取有效得分的卡牌方案,则返回 0。示例 1:输入:cards = [1,2,8,9], cnt = 3输出:18解释:选择数字为
2021-09-13 12:03:52 529
原创 java学习笔记(数据结构与算法8)二叉排序树的创建,二叉树的前序遍历,中序遍历,后序遍历,代码加注释。
package BinaryTree;public class Test { public static void main(String[] args) { TreeNode t1=new TreeNode(6,"小李"); TreeNode t2=new TreeNode(5,"小五"); TreeNode t3=new TreeNode(8,"小八"); TreeNode t4=new TreeNode(2,"小二"); .
2021-09-13 11:11:56 94
原创 java学习笔记(数据结构与算法6)排序专题-基数排序。用空间换取时间的超快排序。java代码加注释。
package Sort;public class JiShu { public static void main(String[] args) { int arr[]={21,24,57,62,6523,36,1,89,245}; JiShuSort(arr); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } }.
2021-09-12 19:58:43 144
原创 java学习笔记(数据结构与算法7)查找专题-斐波那契查找,自身理解+代码实现,斐波那契查找的好处。
斐波那契查找的理解:要理解斐波那契查找,首先要知道它的优点,虽然它和二分查找一样,时间复杂度为O(log2n),但斐波那契查找过程中,只涉及到加减法,不涉及到乘法,因此在查找速度上是有所提升的。斐波那契查找分为创建新数组和查找两部分。首先我们先了解一下斐波那契数列,斐波那契数列中的数据满足前两个为1,后面每个值等于前面两个的和,这样我们就仅仅用加法实现了一个接近成倍递增的数列。创建新数组的作用是使其长度等于斐波那契数列中的数据。从而每次查找都能从中间分为左右两个,同时左右都是斐波那契数列中的
2021-09-12 15:54:22 241
原创 java学习笔记(数据结构与算法6)排序专题-归并排序,随机数生成。java代码实现,带思路注释。
package Sort;import java.util.Arrays;import java.util.Random;public class MergerSort { public static void main(String[] args) { //随机数的生成,先创建一个random对象(这里要调用Random包) //然后用对象调用nextInt方法,参数n的含义是随机数出自[0,n) int[] arr=new int[10.
2021-09-10 17:15:34 191 1
原创 java学习笔记(数据结构与算法6)排序专题-快速排序。java代码实现,带思路注释。
package Sort;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] arr = {3,5,32,532,1,5,2,4}; System.out.println(Arrays.toString(arr)); Quick(arr,0,arr.length-1); System....
2021-09-10 11:46:31 98 1
原创 力扣做题思路分享(2)两数之和,一起看一下哈希表的魅力!
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], ta...
2021-09-10 09:01:41 116 1
原创 java学习笔记(数据结构与算法5)多位计算器,实现括号等功能,利用后缀表达式求解,源代码带注释、思路。
功能实现:输入一个字符串(计算式),计算其结果解题思路:1.先将计算式的数字,符号,存入一个String集合中(这里主要解决的是如12,,536这种多位数)2.然后将中缀表达式转化为后缀表达式,如1+2->12+,再如3*(4+2)->342+*,这个过程总的说就是 按照运算优先级一小步一小步转成后缀表达式3.最后利用后缀表达式和栈进行计算。package JiSuanQi;import java.util.ArrayList;//import java.util.It.
2021-09-09 13:07:16 389 1
原创 java学习笔记(数据结构与算法4)将中缀表达式转化为后缀表达式,实现将多位数的运算式拆分存入数组,java代码带注释。
package JiSuanQi;import java.util.ArrayList;import java.util.Iterator;import java.util.Scanner;import java.util.Stack;/*功能实现:输入一个字符串(计算式),将其转化为后缀表达式解题思路:先将计算式的数字,符号,存入一个String集合中(这里主要解决的是如12,,536这种多位数 *///main作为测试,这里不再赘述。public class Test { .
2021-09-09 11:52:32 217 1
原创 力扣做题思路分享(1)有效数字问题,java代码加解析,冲冲冲!
有效数字(按顺序)可以分成以下几个部分:一个 小数 或者 整数(可选)一个 'e' 或 'E' ,后面跟着一个 整数小数(按顺序)可以分成以下几个部分:(可选)一个符号字符('+' 或 '-')下述格式之一:至少一位数字,后面跟着一个点 '.'至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字一个点 '.' ,后面跟着至少一位数字整数(按顺序)可以分成以下几个部分:(可选)一个符号字符('+' 或 '-')至少一位数字部分有效数字列举如下:["2", "008.
2021-09-08 20:56:22 186
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人