自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【智力题】:毒酒问题

有十杯酒,其中一杯有毒,现在要使用尽可能少的鸭子数量去找出哪杯酒有毒,已知毒性在一天之后才能发作,并且一天之后就要得到结果,问最少需要几只鸭子?十杯酒,对应的二进制编码为1010,共四位,所以最少需要四只鸭子即可分析过程:第一步:对十杯酒编号 ...

2020-12-17 23:38:02 1125 1

原创 【JAVA】:彻底搞懂重写、重载、多态、向上转型、向下转型

1、重写(Override)即字面意思,将方法重新写一遍,指的是在子类中把父类的本身有的方法重新写一遍注意:在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下,对方法体进行修改或重写,这就是重写2、重载(Overload)指的是 在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺>.序不同)则视为重载。同时,重载对返回类型没有要求,可以相同也可以不同,但不能通过返回类型是否相同来判断重载。3、如何实现多态

2021-08-16 02:06:15 523

原创 【牛客】:找出出现次数最多的单词

注:将大写的转为小写的再计算。import java.util.Arrays;import java.util.HashMap;import java.util.Iterator;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n=in.nextInt()

2021-08-13 22:39:42 342

原创 【牛客】:字符串中找出连续最长的数字串

链接:https://www.nowcoder.com/questionTerminal/bd891093881d4ddf9e56e7cc8416562d来源:牛客网读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述:在一行内输出str中里连续最长的数字串。示例1输入abcd12345ed125ss123456789输出123456789思路:import java.util.*;publi

2021-07-19 16:01:56 939 1

原创 【剑指 Offer 】 最小的k个数

输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 <= k <= arr.length <= 100000 <= arr[i] <= 10000解法:1、使用PriorityQueue(优先队列),优先

2021-07-19 15:16:02 128

原创 【计算机网络】:TCP/IP模型--应用层

1、应用层:网络应用是计算机网络体系结构的最上层,网络应用程序运行在网络边缘的端系统上,通过彼此间的通信来共同完成某项任务。应用层规定了应用进程在通信时所遵循的协议。2、应用层协议:为实现某种网络应用,不论是客户进程和服务器进程之间,还是对等方之间,都需要遵循的某种通信协议。2.1应用层协议之HTTP协议(超文本传输协议):2.1.1概念​ HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器。HTTP使用的运输层协议是TCP

2021-07-08 17:46:55 1076

原创 【牛客】:数组中出现次数超过一半的数字

链接:https://www.nowcoder.com/questionTerminal/e8a1b01a2df14cb2b228b30ee6a92163来源:牛客网数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。你可以假设数组是非空的,并且给定的数组总是存在多数元素。1<=数组长度<=50000示例1输入[1,2,3,2,2,2,5,4,2].

2021-06-11 01:22:26 231

原创 【牛客】:乒乓球筐

链接:https://www.nowcoder.com/questionTerminal/bb4f1a23dbb84fd7b77be1fbe9eaaf32来源:牛客网nowcoder有两盒(A、B)乒乓球,有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类,并且每种球的数量不少于B盒中的数量,该怎么办呢?输入描述: 输入有多组数据。每组数据包含两个字符串A、B,代表A盒与B盒中的乒乓球,每个乒乓球用一个大写字母表示,即相同类型的乒乓球为相同的大写字母。字符串长度不大于1000.

2021-06-10 22:03:35 273

原创 【计算机网络】:网络协议、计算机网络层次结构模型

一、什么是网络协议?​ 网络协议:计算机网路是由多个互连的结点组成的,数据与控制信息在结点间传递时必须遵循一些事先约定好的规则,这些规则明确规定了所交换的数据的格式和时序,以及在发送或接收数据是要采取的动作等问题。这些规则就是我们通常所说的网络协议。二、网络的层次结构模型1、什么是层次结构模型?我们先来看一个栗子:邮政系统的层次模型,它的业务主要是把客户寄送的信件快速的传递给收件方,那么这封信件所要要经过哪些步骤呢?​ 发信人与收信人通过邮政系统交换信息,将传递的信息写在纸上并封装在信封里,信

2021-05-31 00:19:02 1067 1

原创 【牛客】:剪花布条

链接:https://www.nowcoder.com/questionTerminal/1046cd038f7a4b04b2b77b415973de1c来源:牛客网题目描述:一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?输入描述: 输入包含多组数据。每组数据包含两个字符串s,t,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花

2021-05-27 23:30:14 210

原创 【牛客】:数根

题目描述数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根;如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24 来说,把2 和4 相加得到6,由于6 是一位数,因此6 是24 的数根。再比如39,把3 和9 加起来得到12,由于12 不是一位数,因此还得把1 和2 加起来,最后得到3,这是一个一位数,因此3 是39 的数根。现在给你一个正整数,输出它的数根。输入描述:输入包含多组数据。每组数据.

2021-05-18 01:04:11 993

原创 【牛客】:完全数

链接:https://www.nowcoder.com/questionTerminal/7299c12e6abb437c87ad3e712383ff84来源:牛客网完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。s输入n,请输出n以内(含n)完全数的个数。计算范围, 0 <

2021-04-28 22:08:55 352

原创 【牛客】:查找组成一个偶数最接近的两个素数

链接:https://www.nowcoder.com/questionTerminal/f8538f9ae3f1484fb137789dec6eedb9来源:牛客网任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。本题含有多组样例输入。输入描述: 输入一个偶数输出描述: 输出两个素数示例1 输入 20 输出 7 13public class Main { public static void ma

2021-04-25 01:22:48 230

原创 【牛客】:二进制插入

链接:https://www.nowcoder.com/questionTerminal/30c1674ad5694b3f8f0bc2de6f005490来源:牛客网给定两个32位整数n和m,同时给定i和j,将m的二进制数位插入到n的二进制的第j到第i位,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1,其中二进制的位数从0开始由低到高。测试样例: 1024,19,2,6 返回:1100import java.util.*;public class BinInsert {

2021-04-25 01:18:11 337

原创 已知有两个整数A、B, 求A与B的最小公倍数

求解公式:A与B的最小公倍数=(A×B)÷(A与B的最大公约数)如何求解最大公约数:欧几里得算法(辗转相除法)欧几里得算法基于下面这个定理:设a、b均为正整数,则gd(a,b)= gcd(b,a % b)。证明:设a=kb+r,其中k和r分别为a除以b得到的商和余数。则有r=a-kb成立。设d为a和b的一个公约数,那么由r=a-kb,得d也是r的一个约数。因此d是b和r的一个公约数。又由r=a%b,得d为b和a%b的一个公约数。因此d既是a和b的公约数,也是b和a%b的公约数。由d的任

2021-04-19 16:26:53 1454

原创 【数据结构】:hashmap如何根据value值查找对应的key值

import java.util.HashMap;import java.util.Map;public class Main{ public static void main(String[] args) { HashMap<Integer,Integer> map=new HashMap<>(); //key---value map.put(1,2); map.put(2,3); map.

2021-04-15 01:22:39 2032 1

原创 【牛客】:说反话

题目描述将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I输入描述:每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100输出描述:依次输出倒置之后的字符串,以空格分割示例:输入I like beijing.输出beijing. like Iimport java.util.Scanner;public class Main { public static void

2021-04-13 17:52:43 132

原创 【数据结构】:排序----希尔排序

思路:希尔排序是插入排序的优化版,采用分组插排的方式,每次使得组内有序,随着组数的变小,待排数组将变得更加有序,直至组数为1的时候,整个数组将变成一个有序的数组,算法结束。public static void shellSort(long[] array){ int gap=array.length/2; while (true){ insertSortGap(array,gap); if (gap==1){

2021-04-11 10:37:54 117

原创 【数据结构】:排序----选择排序

思路:将待排数组分成两部分,无序区间和有序区间。每次从无序区间中最大的元素与无序区间最后一个元素进行交换,直至整个数组有序。起始:无序部分:[0,array.length)有序部分:[array.length,array.length)最终:无序部分:[0,0)有序部分:[0,array.length)例:[9,5,2,7] public static void selectSort(long[] array){ for (int i = 0; i < arr

2021-04-11 01:17:07 91

原创 【数据结构】:排序----冒泡排序

思路:将待排序分成两部分,无序和有序两部分 ,每次将无序部分中最大的元素放进有序部分的第一个位置。起始:无序部分:[0,array.length)有序部分:[array.length,array.length)最终:无序部分:[0,0)有序部分:[0,array.length)例:[9,5,2,7] public static void bubbleSort(long[] array){ for (int i = 0; i < array.length-1; i++

2021-04-11 00:10:57 94

原创 【数据结构】:排序----插入排序

思路:将待排数组分为两部分,有序区间和无需区间[有序区间,无序区间]每次把无序区间中的第一个数取出来,同有序区间的元素进行比较,将其插入到有序区间里合适的位置,使得有序区间插入一个元素后依然有序。重复此操作,直至整个数组变成有序的。例:[9,5,2,7]public static void insertSort(long[] array){ for (int i = 0; i < array.length-1; i++) { long key=arra

2021-04-10 23:28:03 90

原创 【数据结构】:二叉树的层序遍历

岑序遍了

2021-04-07 23:34:00 196 1

原创 【数据结构】:排序的稳定性

概念:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。例:常见的的不稳定排序算法:堆排序、快速排序、希尔排序、选择排序常见的稳定排序算法:冒泡排序、插入排序、归并排序...

2021-04-07 22:37:19 833

原创 【牛客】:变成斐波那契数需要的最少步数

给定一个数字N,每步可以对它进行加1或者减1操作,求把它变成一个斐波那契数所需要的的最少步数。思路:给定的数字肯定位于两个相邻的斐波那契数的之间, 形如:··· fib[i-1] n fib[i] ···所以不我们只需要求出那个比N大第一个斐波那契数,然后比较fib[i]-n与fib[i-1]-n的绝对值,取其差值较小的,这就是最少步数。import java.util.Scanner;class Fib{ public static void...

2021-04-04 20:45:21 368

原创 【数据库】:数据库的增删改查

文章目录**数据库的增删改查:**查看数据库:查询MySQL中有哪些数据库。创建数据库:创建一个数据库,名字叫java。使用(调取数据库)数据库:表示之后的操作全是在java数据库中进行的。建表:在java数据库中建立一个新的表,名字叫exam_result。查看表结构:查看标的组织结构,包含哪些信息。删除表:删除某一个表存储的信息。create:新增,在表中添加要存储的信息。retrieve:查询,查询指定的信息。update:修改,修改信息。delete:删除数据库的增删改查:查看数据库:查询M

2021-04-03 21:29:07 502

原创 【数据结构】:二叉树的非递归遍历

先序遍历:中序遍历:后序遍历:package 二叉树的非递归遍历;import java.util.Stack;/** * @version 1.0 * @Author XuHeng * @Date 2021/4/1 23:12 */class TreeNode { char val; TreeNode left; TreeNode right; public TreeNode(char val) { this.

2021-04-01 23:56:27 216

原创 【Linux】:Ubuntu 如何安装 vim 编辑器

Ubuntu 安装安装 vim安装vim的命令: sudo apt install vim #执行该命令安装完成之后执行:vim test.txt 命令如果可以成功打开vim编辑器,则安装成功。如下图所示:

2021-03-30 21:06:09 3528

原创 【数据结构】:二叉树的递归遍历

二叉树的遍历(递归)二叉树的遍历:是指沿着某条搜索路线,依次对树中每个节点做一次且仅做一次访问。N:代表根结点L:代表根结点的左子树R:代表根结点的右子树正在上传…重新上传取消NLR:先序遍历,又称作前序遍历,访问顺序为:根结点-->根的左子树-->根的右子树转存失败重新上传取消LNR:中序遍历,访问顺序为:根的左子树-->根结点-->根的右子树转存失败重新上传取消LRN:后序遍历,访问顺序为:根的左子树-->根的右子树-->根结点

2021-03-27 23:37:57 1031

原创 【力扣】:二叉树(一)

二叉树相关题记:144. 二叉树的前序遍历解:class Solution {​ public List<Integer> preorderTraversal(TreeNode root) {​ List<Integer> list=new ArrayList<>();​ if(root!=null){​ list.add(root.val); ​ List<Integer> leftsu...

2021-03-25 23:23:59 146

原创 【数据结构】:求二叉树的深度

public class TreeNode { char val; TreeNode left; TreeNode right; public TreeNode(char val) { this.val=val; }}public class BuildTree { public static TreeNode buildTree() { // 先构造结点 TreeNode a = new Tr...

2021-03-23 23:25:27 424

原创 【数据结构】:求二叉树的的总结点个数

上文(https://blog.csdn.net/qq_44292334/article/details/115145148)我们学习二叉树的建立,以及如何求二叉树的叶子结点个数本篇文章我们学习如何求二叉树 :总的结点个数class TreeNode { int val; TreeNode leftChild; TreeNode rightChild; public TreeNode(int val) { this.val=val; }

2021-03-23 22:43:09 4215 1

原创 【数据结构】:二叉树的建立,如何求叶子结点的个数

二叉树基本概念:一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点+左子树的二叉树+右子树的二叉树组成。二叉树的特点:1、每个节点最多有两棵子树,即二叉树的结点的度不大于2。2、二叉树的子树有左右之分,其子树的次序不能颠倒,因此二叉树是有序树。树的度:一棵树中,最大的节点的度称为树的度叶子结点:度为0的结点称为叶节点,如上图的:1、3 、5 为叶节点双亲节点或父节点:若一个结点含有子节点,则这个结点称为其子节点的父节点,如上图的:4是2和6的父节点孩子..

2021-03-23 22:25:30 3727 1

原创 【数据结构】:二叉树的非递归前(先)序遍历

给你二叉树的根节点 root ,返回它节点值的前序遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[1,2]示例 5:输入:root = [1,null,2]输出:[1,2]来源:力扣(LeetCode)链接:https://leetcode-cn.com...

2021-03-21 22:02:30 144

原创 【力扣】:比较含退格的字符串

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。示例 3:输入:S = "a##c", T = "#a#c"输出:true解释:S 和 T

2021-03-14 19:27:31 132 2

原创 【力扣】: 有效的括号(括号匹配问题)

给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:true示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false示例5:输入:s = "{[]}"输出:tru...

2021-03-10 23:27:44 521

原创 【力扣】:图解 反转链表

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode...

2021-03-08 17:13:56 208

原创 【双向链表】:java实现双向链表

package java_03_06;// 双向链表的节点, 需要记录 next 和 prevclass Node { int val; Node prev = null; Node next = null; public Node(int val) { this.val = val; }}// 实现一个双向链表public class myLinkedList { // 记录头结点的位置. private No.

2021-03-07 23:58:06 97 1

原创 【链表】:删除链表中重复元素

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5示例1输入复制{1,2,3,3,4,4,5}返回值复制{1,2,5} class ListNode { int val; ListNode next; L

2021-03-04 23:33:56 327 1

原创 【力扣】:环形链表

给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一

2021-03-04 22:05:23 109 1

原创 【力扣】:合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merg..

2021-03-04 00:17:50 195 3

空空如也

空空如也

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

TA关注的人

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