自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 《游戏测试精通》观后感

个人作为对《游戏测试精通》这本书的一些理解和感受

2023-01-03 19:48:29 852 4

原创 一文详解常见的基于比较的排序算法【简单易懂】

一文详解常见排序算法【简单易懂】

2022-07-31 19:33:51 817 1

原创 String、StringBuilder和StringBuffer有哪些区别?

String、StringBuilder和StringBuffer有哪些区别?

2022-07-31 10:55:38 3612

原创 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。【剑指Offer】

给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。

2022-07-02 16:27:13 328

原创 一文了解linux都有哪些常用命令

一文了解linux都有哪些常用命令

2022-06-29 17:50:56 1099

原创 一个机器人位于一个 m x n 网格的左上角 。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径?【LeetCodeHot100】

一个机器人位于一个 m x n 网格的左上角 。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径?

2022-06-24 10:59:43 3887

原创 数组表示若干个区间的集合,请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。【LeetCodeHot100】

数组表示若干个区间的集合,请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

2022-06-23 17:55:04 639

原创 【牛客刷题】NowCoder号称自己已经记住了1-100000之间所有的斐波那契数。 为了考验他,我们随便出一个数n,让他说出第n个斐波那契数。如果第n个斐波那契大于6位则只取后6位。

输出第 n 个斐波那契数,如果大于6位,则输出后6位!

2022-06-21 10:41:17 340 3

原创 手把手教你实现一个JavaWeb项目:创建一个自己的网页博客系统(前端+后端)(二)

一篇博客带你实现一个真正的项目!

2022-06-19 20:58:28 4514 11

原创 手把手教你实现一个JavaWeb项目:创建一个自己的网页博客系统(前端+后端)(一)

一篇博客带你实现一个真正的项目!

2022-06-19 19:06:35 20934 38

原创 【牛客刷题】因子个数。一个正整数可以分解成一个或多个数组的积。例如36=2*2*3*3,即包含2和3两个因子。NowCoder希望你开发一个程序输出每个正整数的因子个数。

要求输出一个数n的所有因子,首先因子肯定是不能为1和它本身的。并且重复的因子只算一个。那么我们从最小因子2开始到最大因子n的平方根结束,依次遍历这个区间的每个数

2022-06-03 16:47:22 368

原创 【牛客刷题】求正数数组的最小不可组成和。在区间[min,max]上,如果有一些正数不可以被arr某一个子集相加得到,那么这些正数中最小的那个,就是arr的最小不可组成和

在本题中,max为最大的子集和,min为最小的子集和,要求求出在min到max的区间内找到最小的不可组成和。一个数为最小不可组成和表示这个数不能被数组里的任意子集相加得到。 就以数组 arr {3,2,5}为例,min是2,max是10,要求在2到10之间找到数组的最小不可组成和。如果没有,则最小不可组成和为max+1,即为11。 因为在数组中,10是......

2022-06-03 10:57:29 188

原创 【牛客刷题】有假币;在一堆硬币中有一个假币,要求在最短时间内最多称量几次可以找出这个假币。(超详细题解)

题目要求我们要在最快时间内找出假币,并且给我们一个可以称量的天平,还告诉我们假币比真币要轻,那么此时很显然,我们需要将这些硬币分成相同的几堆,再对这几堆硬币分别进行称量,重量轻的那一堆就是假币所在的那一堆,再将轻的那一堆分开,继续上述步骤,就可以找出那一枚假币了。 可是问题来了,我们要分几堆呢?是分成两堆还是分成三堆亦或者分更多堆呢?再来看看题目的要求:想让我们在最快时间内找出来。那么就说明我

2022-06-02 17:28:22 910 1

原创 【MySQL】数据库(二)【进阶内容】数据库约束+表的设计+进阶新增和查询(简单易懂)

目录~~~一、MySQL的约束:1、约束这玩意儿到底是什么呢? 打个比方:我是一个合唱队的领队,我想让我的这一支合唱队参加比赛,甚至还想拿个奖啥的;可是我这一只合唱队不是很平凡,有的人是高音选手(某高音哥)、有的人五音不是很全(某波澜哥)、有的人唱歌比较亢奋(某面筋哥),有这些选手存在,每次排练我都很苦恼,后来我想了个办法,就是在每次排练的时候将他们都“约束”住。你喜欢高音是吧?排练的时候唱低音;你唱歌跑调?那就进入三声队;你唱歌亢奋?直接绑起来不许动弹。 ...

2022-05-21 22:09:31 286 2

原创 【MySQL】数据表四字真决---增删查改(一)(简单易懂)

目录~~~小小前言:在我的上一篇博客中我分享了一些关于MySQL的基础知识和一些简单的操作,如果有的朋友有兴趣可以点进去学习一下前面的内容。这篇博客中我会继续和大家分享一下在MySQL中的关于数据表的增删查改操作以及一些自己的看法。点击这里跳转上一篇博客!!!增删查改,通常我们也简称为CURD,即C:create、U:update、R:retrieve、D:delete。这是我们学习数据库的一个非常重要的知识点!!!一、第一真决:增!(Create)...

2022-03-18 22:04:05 2172 18

原创 【MySQL】数据库基本认识+基础+操作(简单易懂)

我是目录哦~~~一、数据库基本认识1、为什么要有数据库呢?2、数据库是啥呢?3、数据库有哪几类呢?4、MySQL具体是啥啊?二、数据库基础1、数据库的基本操作都有哪些呢?1、显示当前的数据库:2、创建数据库:​​...

2022-03-10 21:21:28 8081 45

原创 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。【LeetCode Hot 100】

力扣热题100之第136题:先贴代码:class Solution { public int singleNumber(int[] nums) { //异或 int ans = 0; for(int i = 0; i < nums.length;i++){ ans = ans ^ nums[i]; } return ans; }}解题思路:这一题需要我们用到

2022-03-07 21:46:26 7301 3

原创 给定一个数组,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择某一天买入这只股票,并选择在未来的一个不同的日子卖出该股票。【LeetCode Hot 100】

力扣热题100之第121题:先贴代码:class Solution { public int maxProfit(int[] prices) { /** * 遍历数组找到历史价格最低点,再往后遍历,如果出现那一天价格比最低点高,说明有利润(差值) * 记录下这个利润,继续往后遍历,记录下最大利润,如果最低点后面无元素了,说明 * 这笔交易里没有利润可赚。 */ //定义最低价格min,初始值

2022-03-07 21:22:23 2843

原创 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。【LeetCode Hot 100】

力扣热题100之第104题:class Solution { public int maxDepth(TreeNode root) { //当root为null时,二叉树长度为0 if(root == null){ return 0; } //当root左右子树都不为null,整棵树最大长度为左右子树长度的最大值+1; return 1 + Math.max(maxDepth(root.

2022-03-07 20:20:01 714

原创 给你一个二叉树的根节点 root , 检查它是否轴对称。【LeetCode Hot 100】

力扣热题100之第101题:方法一、递归: class Solution { public boolean isSymmetric(TreeNode root) { //编写函数判断根的左树和右树是否对称 return func(root.left,root.right); } public boolean func(TreeNode leftTree,TreeNode rightTree){ //当左树为空,右树不为空

2022-03-07 20:10:42 5283

原创 给定一个二叉树的根节点 root ,返回它的 中序 遍历。【LeetCode Hot 100】

力扣热题100之第94题方法一、递归法:首先我们得知道什么是二叉树的中序遍历:左子树节点 - 根节点 - 右子树节点。就是遇到节点时,优先遍历该节点的左子树,等遍历完了再到根节点,最后是右子树。如下图所示:那么这棵二叉树中序遍历的结果就为:4 2 8 6 5 7 1 3;通过这个思路,我们就可以明白,当我们需要中序遍历一颗整树的时候,就得先遍历它的左子树,而遍历它的左子树,需要先遍历它的左子树的左子树,等等。所以我们就可以用递归来解决这个问题。具体代码为:class Solut

2022-03-07 19:01:48 9451 1

原创 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。【LeetCode Hot 100】

力扣热题100之第160题:方法一、差值步法:这个方法的思路为先定义两个指针,分别指向两条链表的头节点,再一人一步往后走,如果这两条链表有相交,则两个指针必定会相遇,若没有相遇则返回null,说明两条链表没有相交。但是上述情况是在两条链表长度相等的情况下,若这两条链表不相等怎么办呢?我们可以先找到两条链表中较长的那条,让指向长链表的那个头指针先走它们两个链表的长度差值步数,比如链表A有八个节点,长度为8,链表B有七个节点,长度为7,则它们差值步数为1,即可以先让指向链表A的头指针先走1步,然

2022-03-04 21:19:02 1906 12

原创 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?【LeetCode Hot 100】

力扣热题100之第70题:先贴代码:class Solution { public int climbStairs(int n) { //爬完n阶所需的方法:f(n) = f(n-1) + f(n-2) int a = 0; //定义a为n-2阶需要的方法数 int b = 0; //定义b为n-1阶需要的方法数 int method = 1; //method为n阶需要的方法数 //i为当前的阶数,从第

2022-03-04 18:04:51 8244

原创 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。【LeetCode Hot 100】

力扣热题100之第53题:先贴代码:class Solution { public int maxSubArray(int[] nums) { //定义一个cur,存储子数组的和 int cur = 0; //定义maxsum,为连续子数组的最大和 int maxsum = nums[0]; //for循环遍历数组,cur为从0开始的子数组和,若遍历到x时,之前子数组的和小于x的值 //则抛

2022-03-04 17:23:08 4579

原创 给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。【LeetCode Hot 100】

力扣热题100之第20题:先贴代码:class Solution { public boolean isValid(String s) { //新建栈,用以存储左括号 Stack<Character> stack = new Stack<>(); //for循环遍历字符串s,遇到左括号入栈,遇到右括号出栈,判断两个括号是否匹配 for(int i = 0;i < s.length();i++).

2022-03-04 16:30:56 4525 1

原创 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。【LeetCode Hot 100】

力扣热题100之第一题:方法一:暴力枚举法class Solution { public int[] twoSum(int[] nums, int target) { int n = nums.length; for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { if (nums[i] + nums[j] == tar

2022-03-04 15:18:15 3594 1

原创 还不懂时间复杂度和空间复杂度?一篇博客告诉你

前言:相信同学们在平时学习刷题中肯定会遇见这么一个名词:“时间复杂度”和“空间复杂度”。不少同学都是一头雾水,甚至有一点点了解,但是也说不出什么所以然来,那么今天咱们就从浅至深,来说说这个“时间复杂度”和“空间复杂度”究竟是个什么玩意儿!一、为啥要有这么个东西?在咱们计算机发展的早期,那时候的技术没咱现在高超,存储技术还是比较落后的,在编程的时候往往会因为一个不良的算法而导致项目的失败;所以那时候的人们,为了区别出一个算法和另一个算法的优劣好坏,便想到了一个方法来...

2022-02-28 17:20:47 298 5

原创 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。

力扣原题:先贴代码:public class Solution328 { public ListNode oddEvenList(ListNode head) { //当链表为空时,直接返回 if (head == null){ return head; } //创建节点oddnum和节点evennum,始终指向奇数和偶数的最后一个节点 ListNode oddnum = head.

2022-01-14 16:47:08 1660

原创 对链表进行插入排序。从第一个元素开始,该链表可以被认为已经部分排序。每次迭代时,从输入数据中移除一个元素,并原地将其插入到已排好序的链表中。

力扣原题:先贴代码:public class Solution147 { public ListNode insertionSortList(ListNode head) { //当链表为空时,不需排序,直接返回 if (head == null){ return head; } //创建一个虚拟头节点,方便处理头节点 ListNode newhead = new ListNode(

2022-01-12 15:33:54 312

原创 给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为:L0 → Ln → L1 → Ln - 1

力扣原题:先贴代码:public class Solution143 { public void reorderList(ListNode head) { //找到原链表的中间节点 ListNode mid = middleNode(head); //将原链表中点之后的链表反转逆置,再返回反转后的头节点 ListNode last = Reverse(mid); //使中点的next域为空,断开链表 .

2022-01-11 16:45:01 1848

原创 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

力扣原题:先贴代码:public class Solution142 { public ListNode detectCycle(ListNode head) { //新建fast节点和slow节点 ListNode fast = head; ListNode slow = head; //循环判断fast节点和fast节点的后继节点是否为空,若为空则无环,退出循环返回null while (fast !=

2022-01-10 20:16:48 699

原创 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表。

力扣原题:先贴代码:public class Solution92 { public ListNode reverseBetween(ListNode head, int left, int right) { //创建一个虚拟头节点以处理需要反转的节点是头节点的情况 ListNode newhead = new ListNode(-1); newhead.next = head; //创建cur节点使其指向left节点的.

2022-01-09 20:28:55 4044

原创 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中没有重复出现的数字。返回同样按升序排列的结果链表。

力扣原题:先贴代码:public class Solution82 { public ListNode deleteDuplicates(ListNode head) { //判断链表是否为空的情况 if (head == null){ return head; } //创建一个数组list用来存放链表中重复出现的数 ArrayList<Integer> list = .

2022-01-08 16:20:04 625

原创 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。

力扣原题:旋转链表先贴代码:public class Solution61 { public ListNode rotateRight(ListNode head, int k) { //当链表为空或者链表只有一个元素或者移动0步的时候的情况 if (head == null || head.next == null || k == 0){ return head; } //创建一个虚拟头节点,指向

2022-01-07 16:27:14 2476 1

原创 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)

力扣原题:两两交换链表中的节点思路解析:在此题目中要求只能交换节点,不能交换节点内部的值,说明需要对各个节点的next域的指向进行更改;假设此时有四个节点,需要将1、2节点交换,3、4节点交换,即是将1节点的前驱节点指向2节点,2节点指向1节点,1节点再指向3节点(2节点的后继节点)。但是,在做题过程中任然需要考虑特殊情况:链表中是奇数节点或者只有一个节点甚至没有节点的情况。于是得出以下代码:public class Solution24 { public ListNode swapP

2022-01-07 12:35:41 1084

原创 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。

力扣原题:两数相加。先贴代码:public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode l3 = new ListNode(-1); //定义一个新链表的头节点l3 ListNode node3 = l3; //定义头节点的副本node3 int ex = 0; //定义一个进位值ex while (l1 != null || l2 != null){.

2021-12-20 20:43:11 8978 10

原创 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

力扣原题:合并两个升序链表。先贴代码: public ListNode mergeTwoLists(ListNode headA,ListNode headB){ //创建一个新链表头节点newhead,赋值为1 ListNode newhead = new ListNode(-1); //令cur等于newhead ListNode cur = newhead; //执行循环,将两链表中小的那个进入新链表

2021-11-26 19:35:43 3539

原创 【Java】事例详解类和对象,究竟什么是类什么是对象?

Java作为一个优秀的面向对象设计的编程语言,初学者在学习过程中难免会对“对象”对“类”而感到不解;那么什么是面向对象什么是面向过程呢?

2021-11-24 00:59:39 367 2

原创 【JAVA初学者】从0开始到HelloWorld,Java入门初始。

前言:很多编程初学者新学习一门语言的时候首先想了解的都是如何去写出来,那我们就直接开门见山,从HelloWorld开始说起。首先安装好JDK和IDEA,详细安装教程网站上也有,这里不再过多叙述;关于java编译器的选择可以有很多种,你甚至可以选择txt来写,当然这不是很推荐的。项目创建:http://111下载好IEDA后,需要新建项目(Project):点击File --> New --> Project出现新弹窗后在“Project SDK”中找到你安装JDK的...

2021-11-02 15:14:38 166 2

空空如也

空空如也

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

TA关注的人

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