自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 青蛙跳台阶

一、问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共需要多少种跳法。思路:首先考虑n等于0、1、2时的特殊情况,f(0) = 0 f(1) = 1 f(2) = 2 其次,当n=3时,青蛙的第一跳有两种情况:跳1级台阶或者跳两级台阶,假如跳一级,那么 剩下的两级台阶就是f(2);假如跳两级,那么剩下的一级台阶就是f(1),因此f(3)=f(2)+f(1) 当n = 4时,f(4) = f(3) +f(2),以此类推…可以联想到Fibonacci数列。 因此,可

2020-06-02 22:47:09 275

原创 二分查找求解立方根

•计算一个数字的立方根,不使用库函数输入:double 待求解参数返回值:double 输入参数的立方根,保留一位小数输入描述:待求解参数 double类型输出描述:输入参数的立方根 也是double类型示例1输入216输出6.0import java.util.*; public class Main{ // 使用二分查找算法 public static double getCubeRoot(double input) { doubl

2020-06-02 21:31:39 700 2

原创 浏览器输入URL后发生了什么

浏览器输入URL(统一资源定位符)后发生了什么1.DNS域名解析;我们在浏览器输入网址,其实就是要向服务器请求我们想要的页面内容,所有浏览器首先要确认的是域名所对应的服务器在哪里。将域名解析成对应的服务器IP地址这项工作,是由DNS服务器来完成的。客户端收到你输入的域名地址后,它首先去找本地的hosts文件,检查在该文件中是否有相应的域名、IP对应关系,如果有,则向其IP地址发送请求,如果没有,再去找DNS服务器。2.建立TCP连接;三次握手3.发送HTTP请求;4.服务器处理请求;服务器端

2020-05-29 17:30:34 356

原创 TCP/UDP基本信息及编程实现

UDP,user datagram protocol,用户数据报协议TCP,Transmission Control Protocol基于字节流的控制传输协议TCP与UDP区别:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可

2020-05-28 20:45:21 189

原创 为何有MAC地址还要IP地址?

基本上一个观点就是一个是物理地址,一个是逻辑地址。假设两点在一个网络内。在这种情况下,只需要MAC地址就可以了。例如通过交换机将多台电脑组成一个网络。然而,如果两点不在一个网络内。这时就需要IP地址了。因为IP地址含有两个部分,一个是网络地址,一个是主机地址。因此,通过对方的IP地址,是可以判断出对方是否和本机在一个网络内。如果在一个网络内,如上所述,只需要知道对方的MAC地址即可通信。如果不在一个网络内,本机的网络层就认为数据应该发送给网关。道理是显然的,如果不在一个网络内,首先得把数据发送出网络才

2020-05-28 20:05:12 633

原创 网络分层协议(七层、五层、四层)

一、OSI七层模型OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。二、TCP/IP四层模型TCP/IP是一个四层的体系结构,主要包括:应用层、运输层、网际层和网络接口层。从实质上讲,只有上边三层,网络接口层没有什么具体的内容。(socket是网络编程接口,位于传输层与应用层之间的抽象层)三、五层体系结构五

2020-05-28 14:35:07 3422

原创 24点运算

bool get(int a, int b, char& ops){ if(a+b == 24) {ops = '+';return true;} if(a-b == 24) {ops = '-';return true;} if(a*b == 24) {ops = '*';return true;} if(a != 0 && b%a == 0 && b/a == 24) {ops = '/';return true;} re.

2020-05-26 14:23:22 222

原创 长方体的摆放(递归)值得一看

一个长方体,长宽高分别为x,y,z,都为自然数。现在要把若干个相同的长方体摆成高为N的一根柱形体。每层摆1个,如果两种摆法的高度是一样的,则认为这两种摆法等价,所以每层只有三种摆法。求一共有多少种摆法。输入描述:第一行为一个数字N,N>=1且N<=100,表示要摆放的高度第二行为长方体的长宽高,x、y、z都为无符号整数,按升序排列。输出描述:摆法总数,已知该总数会小于10000000示例1输入105 6 7输出1设dp[i][j]为第i层,高度为j的方案数,那么第i

2020-05-25 21:31:54 1430

原创 String a=123 String b=123

String a = "123";String b = "123";System.out.println(a == b); 答案:trueJava栈的特点是存取速度快(比堆快),但是空间小,数据生命周期固定,只能生存到方法结束。我们定义的String a = “123”; String b = “123”; 这些语句,我们拆分开来看:123,等号右边的指的是编译期间可以被确定的内容,都维护在常量池中。str ,等号左边的指的是一个引用,引用的内容是等号右边数据在常量池中的地址

2020-05-24 12:56:47 1605

原创 Static关键字

Static关键字修饰的(方法,类。。)可以在不创建对象的情况下被调用1.Static修饰类Static一般不能修饰普通类。但是可以修饰内部类如果没有用static修饰InterClass,则只能new 一个外部类实例。再通过外部实例创建内部类。2.static关键字修饰方法修饰方法的时候,其实跟类一样,可以直接通过类名来进行调用:3.static关键字修饰变量被static修饰的成员变量叫做静态变量,也叫做类变量,说明这个变量是属于这个类的,而不是属于是对象,没有被static修饰的成员

2020-05-24 12:55:27 369

原创 最长回文子串

import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scanner.hasNextLine()){ String s=scanner.nextLine(); System.out.println(l

2020-05-23 22:26:14 157

原创 内存泄漏

内存泄漏:在基于Java的运行中,内存泄漏是一种编程错误,它会导致应用程序对已经不需要再使用对象的引用。所以,无法回收该系统给该对象分配的内存。最终导致OOM(OutOfMemoryError 内存泄漏) 崩溃。简单来说就是:一些对象有着有限的生命周期。当这些对象所要做的事情完成了,我们希望他们会被回收掉。但是如果有一系列对这个对象的引用,那么在我们期待这个对象生命周期结束的时候被收回的时候,它是不会被回收的。它还会占用内存,这就造成了内存泄露。持续累加,内存很快被耗尽。内存泄漏出现的一些实例:1.单

2020-05-22 17:03:07 161

原创 Linux 硬链接与软链接

Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln 命令产生硬链接。硬连接硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相

2020-05-22 16:56:39 212

原创 Linux 常用命令

date显示系统时间cal显示日历bc计算器,推出计算器使用quitTab命令自动补全Ctrl+c使当前命令停掉Ctrl+d相当于输入exit+回车Ctrl+l清屏Ctrl+z挂起进程 使用fg恢复进程man查看帮助手册sync强制将内存内容写入磁盘,在关闭系统前使用,保证数据安全。shutdown关机-t sec 几秒后关机-r 在系统服务停用后重启-h 在系统服务停掉后立即关机(shutdown -h now立即关机 shutdown -h 20:30 八

2020-05-22 16:00:34 349

原创 count(*),count(字段),count(1)

count()是一个聚合函数,对于返回的结果集,会逐行判断,若返回的不是 NULL,就会加 1,否则不加。对于count(主键id),InnoDB 会遍历全表,取每行的主键 id,返回给 server 层,server 层拿到数据后,进行判断累加。对于count(1),InnoDB 仍遍历全表,但是不取值,server 层对返回的每一行数据新增一个 1,然后进行判断累加;因此,count(1)要更快些,因为无需取值。从引擎返回 id 会涉及到解析数据行,以及拷贝字段值的操作。对于count(字段):

2020-05-21 18:38:58 176

原创 最长不重复子串

public class Solution { public int lengthOfLongestSubstring(String s) { int n = s.length(); int ans = 0; for (int i = 0; i < n; i++) for (int j = i + 1; j <= n; j++) if (allUnique(s, i, j)) ans

2020-05-21 18:08:40 135

原创 二分查找

二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。二分法查找的思路如下:(1)首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。(2)如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤(1)的操作。(3)如果某一步数组为空,则表示找不到目标元素。二分法查找的时间复杂度O(logn)。非递归算法:function binarySearch(arr,key){ var low=0; //数组最小索引值

2020-05-20 15:29:48 116

原创 drop与delete的区别

drop主要用于删除结构例如删除数据库:drop database XX,删除表 drop table XX。字段也是结构的一种,也可以使用drop了?对的,但是我们改变了表结构要先alter方法。例如,我们要删除student表上的age字段的信息,可以这样写:alter table student drop agedelete主要用于删除数据举个例子,要删除 student表上名字为‘张三’的所有信息:delete from student where name=‘张三’。这种情况下用delete

2020-05-20 11:09:50 305

原创 JOIN

JOIN分为OUTER JOIN和INNER JOIN(外连接和内连接)INNER JOIN在表中存在至少一个匹配时,INNER JOIN 关键字返回行。(A表交上B表的结果)实例SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastNameINNER JOIN 关键字在

2020-05-19 11:17:12 3357

原创 GROUP BY

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。先来看下表1,表名为test:执行如下SQL语句:SELECT name FROM testGROUP BY name结果为可是为了能够更好的理解“group by”多个列“和”聚合函数“的应用,我建议在思考的过程中,由表1到表2的过程中,增加一个虚构的中间表:虚拟表3。下面说说如何来思考上面SQL语句执行情况:1.FROM test:该句执行后,应该结果和表1一样,就是原来的表。2.FROM test Grou

2020-05-19 11:07:44 189

原创 ORDER BY

ORDER BY 语句用于根据指定的列对结果集进行排序。ORDER BY 语句默认按照升序(ASC)对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

2020-05-19 11:03:51 186

原创 UPDATE

Update 语句用于修改表中的数据。UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'WHERE LastName = 'Wilson'

2020-05-19 11:03:22 888

原创 测试用例

用例编写步骤:拿到测试需求 -> 分析需求(画思维导图) -> 编写用例 -> 划分用例优先级用例编写特性:· 一致性:主要包括用例模板一致;各同事的编写手法一致;以及用例的细粒度一致。· 覆盖率:主要包括对需求的覆盖(也包含隐含的需求);新需求可能对那些功能会产生影响的覆盖;对各种场景的覆盖等 。·可执行性:主要是指步骤易于理解、信息描述准确、且能快速识别出测试点 。·执行准确性:是指用例执行的准确度,本身没什么技术含量。但这里需要注意的是执行人对待执行用例的态度

2020-05-19 10:44:37 200

原创 牛客1(华为)

题目描述计算字符串最后一个单词的长度,单词以空格隔开。输入描述:一行字符串,非空,长度小于5000。输出描述:整数N,最后一个单词的长度。示例1输入复制hello world输出复制5import java.util.*;public class Main{ public static int lengthOfLast(String str) { String[] s =str.split(" "); return s[s.length-1

2020-05-19 10:41:46 157

原创 为什么数组查询比链表要快?而插入删除比链表效率低

问:为什么数组查询比链表要快?而插入删除比链表效率低已知:1、数据存储结构分为顺序存储、链接存储、索引存储、散列存储。2、数组属于顺序存储,用一段连续的内存位置来存储。3、链表属于链接存储,用一组任意的存储单元来存储,不要求物理上相邻。抽象:1、顺序存储可以想象成吃饭排队,每个人领的号都是按顺序来的,服务员只要喊号就里立即可以找到对应的人,新来的人都自动加到队尾,如果有人想插队,那么从他插队的位置后面所有的人都要挪动位置。2、链接存储可以想象成手拉手做游戏,每个人只知道自己手拉的是谁,想要找到

2020-05-15 07:10:48 1667 1

原创 牛客1

题目描述计算字符串最后一个单词的长度,单词以空格隔开。输入描述:一行字符串,非空,长度小于5000。输出描述:整数N,最后一个单词的长度。示例1输入复制hello world输出复制5import java.util.*;public class Main{ public static int lengthOfLast(String str) { ...

2020-05-05 16:56:57 124

原创 String

在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。**使用new创建对象,和不使用new创建对象的区别:**使用new创建对象,会直接在堆的字符串常量池内存区申请一块内存空间,使用完毕后会被GC回收。而不使用new创建对象,首先在字符串常量池内存区中查找是否有该字符串,如果有,那么创建的变量即为该字符串的引用,不会开辟新的内存空间。String 类是不可改变...

2020-05-04 07:16:08 135

原创 接口与抽象类

接口接口的声明:Interface关键字用来声明一个接口interface Animal { public void eat(); public void travel();}接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。接口中的方法都是公有的。接口的实现当类实现接口...

2020-05-04 06:11:01 190

原创 LeetCode9

给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词示例:输入: [“Hello”, “Alaska”, “Dad”, “Peace”]输出: [“Alaska”, “Dad”]注意:你可以重复使用键盘上同一字符。你可以假设输入的字符串将只包含字母。class Solution { public String[] findWords(String[] words)...

2020-05-04 05:38:13 163

原创 LeetCode8

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]1--------------011-------------1121------------21331-----------314641-----------4`class Solution {public List&...

2020-05-04 05:22:17 154

原创 LeetCode7

给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次。斐波那契数字定义为:F1 = 1F2 = 1Fn = Fn-1 + Fn-2 , 其中 n > 2 。数据保证对于给定的 k ,一定能找到可行解。示例 1:输入:k = 7输出:2解释:斐波那契数字为:1,1,2,3,5,8,13,……对于 k = 7 ,我们可以得到 2 ...

2020-05-03 22:46:29 152

原创 List<String> list=new ArrayList<String>();与ArrayList<String> list=new ArrayList<String>();

如何理解:List list=new ArrayList();为甚麼要声明为List 而不是ArrayList?ArrayList LinkedList 都是List 的子类,就像 Set 也是Collection 的子接口。首先我们探究一下类的继承 对于java的对象,从类的继承关系来说,父类为上,子类为下,所以向上转型就是从子类型转换成父类型,而想下转型就是从父类型转化成子类型。publ...

2020-04-26 00:55:38 3345 5

原创 “==”与equals( )的异同

Java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean他们之间的比较,应用双等号(==),比较的是他们的值。2.复合数据类型(类)当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址==比较的是两边变量的内存地址是否相同,也可百以理解为是否是同一个变量。equals()是...

2020-04-25 00:39:44 169

原创 LeetCode6

在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。给你一个整数数组 arr,请你从中找出并返回一个幸运数。如果数组中存在多个幸运数,只需返回 最大 的那个。如果数组中不含幸运数,则返回 -1 。示例 1:输入:arr = [2,2,3,4]输出:2解释:数组中唯一的幸运数是 2 ,因为数值 2 的出现频次也是 2 。示例 2:输入:arr = ...

2020-04-24 00:53:39 220

原创 LeetCode5

给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i < n),总满足 array[i] <= array[i + 1]。示例 1:输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。...

2020-04-23 23:52:19 242

原创 LeetCode4

题目描述:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5class Solutio...

2020-04-20 02:00:41 154

原创 LeetCode3

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所...

2020-04-19 18:02:52 162

原创 对象的引用

今天见到了类名+变量的写法,如定义了一个Person类,有一行写法为: Person person;这个其实是定义了一个Person对象的引用。我们知道new一个对象的语句是:Person person = new Person('张三');其实这行代码等价于以下两行:Person person;person = new Person("张三");第一行的person其实是对象...

2020-04-18 23:37:18 240

原创 人工智能——遗传算法求函数最大值

题目描述:运用遗传算法求解图中函数的最大值(约为38.8503…)解决步骤:1.确定编码方案——二进制编码,长度33位。2.初始化种群:使用计算机在0~1之间产生随机数K,并按照数K的 值初始化基因位: 0≤K<0.5,基因为置为1,0.5≤K≤1,基因为置为0。得到33位的01序列字符串。3.计算个体适应度,以maxf(x1,x2)为适应度函数,因所需求的值为最大值,适应度函数值越大...

2020-04-18 00:23:48 17099 4

原创 Java零碎笔记

Java 中主要有如下几种类型的变量//局部变量类变量(静态变量)成员变量(非静态变量)//public Employee(string name, string alias){// Use this to qualify the fields, name and alias:this.name = name;this.alias = alias;}这是个构造函数,this.n...

2020-04-17 13:56:55 147

空空如也

空空如也

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

TA关注的人

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