[算法练习-剑指offer]题33.丑数(Java)

题目题号:33题目名:丑数编程语言Java题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。初次思路动态规划根据列举,将前面几项列出来,1,2,3,2 * 2,5,2 * 3,2 * 2 * 2,3 * 3,就是将2,3,5指向1以后,将指向的数乘对应的因子,如果最小,则选中该数作为当先位最小丑数,然后将指针+1状态转移方程:​
分类: 其他 发布时间: 08-05 22:46 阅读次数: 0

[算法练习-剑指offer]题34.第一个只出现一次的字符(Java)

题目题号:34题目名:第一个只出现一次的字符编程语言Java题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)初次思路使用hash表来记录1.因为全是字母,那么就用两个表分表记录小写字母和大写字母出现的次数2.如果是首次出现该字符,就把它放入集合中记录他的索引3.最后按先后顺序扫描集合,如果找到只出现一次的索引对应的字符,那将这个字符的索引返回,一定是
分类: 其他 发布时间: 08-05 22:46 阅读次数: 0

[Redis入门到精通day04]redis的发布订阅及主从复制

Redis入门到精通day04一、redis的发布订阅发布订阅是进程间的一种消息通信模式:发送者(pub)放消息,订阅者(sub)接收消息实际工作中很少用这个作为消息中间件,一般是用rabbitMQ等1.命令firewall-cmd --zone=public --add-port=6379-6390/tcp --permanent #永久开放6379-6380安全端口firewall-cmd --reload #重启防火墙firewall-cmd --zone=public --lis
分类: 其他 发布时间: 08-05 22:46 阅读次数: 0

[JVM学习之路]八、对象实例化内存分布与访问定位

对象实例化内存分布与访问定位一、对象的实例化具体执行步骤可以分为6步1.判断对象对应的类是否已经加载、链接、初始化虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化。( 即判断类元信息是否存在)。如果没有,那么在双亲委派模式下,使用当前类加载器以ClassLoader+包名+类名为Key进行查找对应的.class文件。如果没有找到文件,则抛出ClassNotFoundExceptio
分类: 其他 发布时间: 08-05 22:45 阅读次数: 0

[JVM学习之路]九、直接内存

直接内存一、直接内存概念直接内存不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是Java堆外的、直接向系统申请的内存区间。通过存在堆中的DirectByteBuffer操作Native内存。访问直接内存的速度会优于Java堆。即读写性能高。出于性能考虑,读写频繁的场合可能会考虑使用直接内存Java的NIO库允许Java程序使用直接内存,用于数据缓冲区二、直接缓冲区与非直接缓冲区区别io读写速度要小于直接内存读写三、直接内存参数设置直
分类: 其他 发布时间: 08-05 22:45 阅读次数: 0

[算法练习-剑指offer]题36.两个链表的第一个公共结点(Java)

题目题号:36题目名:两个链表的第一个公共结点编程语言Java题目描述输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)初次思路他们两个链表一定有公共交点无论长短,先把他们两的起始位置到终点长度变为一致然后两个链表再出发,这样如果遍历到两个节点相等,说明首次相遇,那第一个相交节点就找到了解题代码public class Solution { public ListNode FindFirstCom
分类: 其他 发布时间: 08-05 22:45 阅读次数: 0

[算法练习-剑指offer]题37.数字在排序数组中出现的次数(Java)

题目题号:37题目名:数字在排序数组中出现的次数编程语言Java题目描述统计一个数字在排序数组中出现的次数。初次思路二分查找找到对应值,然后将该位置进行前后遍历统计个数解题代码public class Solution { public int GetNumberOfK(int[] array, int k) { /** * 正向排序和逆向排序? * 二分查找 */ if (array == n
分类: 其他 发布时间: 08-05 22:45 阅读次数: 0

[算法练习-剑指offer]题38.二叉树的深度(Java)

题目题号:38题目名:二叉树的深度编程语言Java题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。初次思路非常经典的树形递归,找出左右子树最深的深度+1即可解题代码public class Solution { public int TreeDepth(TreeNode root) { if (root == null) return 0; return Math.ma
分类: 其他 发布时间: 08-05 22:44 阅读次数: 0

[算法练习-剑指offer]题39.平衡二叉树(Java)

题目题号:39题目名:平衡二叉树编程语言Java题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树初次思路首先了解平衡二叉树的概念:树上任意一个结点的左右子树都是平衡二叉树,左右子树深度差不超过1可以借助求最大深度的方法进一步进行递归如果这个树是平衡树,那么说明这个随机一个结点的左右子树深度差不超过1并且他的左右子树都应该是平衡树解题代码public class Solution { public boolea
分类: 其他 发布时间: 08-05 22:44 阅读次数: 0

[JVM学习之路]十、执行引擎及相关概念

执行引擎一、执行引擎概述执行引擎在执行的过程中究竟需要执行什么样的字节码指令完全依赖于PC寄存器。每当执行完一项指令操作后,PC寄存器就会更新下一条需要被执行的指令地址。当然方法在执行的过程中,执行引擎有可能会通过存储在局部变量表(栈)中的对象引用准确定位到存储在Java堆区中的对象实例信息。元数据定位目标对象的类型信息。(对象头中的元数据指针指向方法区引用的对象类型,通过局部变量表定位对象实例信息。)从外观上来看,所有的Java虚拟机的执行引擎输入、输出都是一致的:输入的是字节码二进制流
分类: 其他 发布时间: 08-05 22:44 阅读次数: 0

[JVM学习之路]十一、StringTable(字符串常量池)的基本特性、内存分配和字符串拼接、intern()方法使用及相关面试题

StringTable(字符串常量池)一、String的基本特性String:字符串,使用一对引起来表示。String sl = “hello”;//字面量的定义方式;String s2 = new String(“hello”) ;String类是已经被声明为final的, 不可被继承String实现了Serializable接口:表示字符串是支持序列化的。 实现了Comparable接口:表示String可以比较大小String在jdk8及以前内部定义为“priva
分类: 其他 发布时间: 08-05 22:44 阅读次数: 0

[算法练习-剑指offer]题40.数组中只出现一次的数字(Java)

题目题号:40题目名:数组中只出现一次的数字编程语言Java题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。初次思路这是一个二进制运算符的使用a^a=0a^0=aa&(-a)=最低位为1的二进制(从又到左)解题代码public class Solution { //num1,num2分别为长度为1的数组。传出参数 //将num1[0],num2[0]设置为返回结果 public void FindN
分类: 其他 发布时间: 08-05 22:43 阅读次数: 0

js基础数据类型,运算符学习笔记

js的标准:ECMAScript不同的浏览器厂队js实现方式不同谷歌推出v8引擎,对js实现最快,nodejs也用v8引擎javascript 包括 es,bom,domjs语言特点:1:解释性语言,写完直接执行,不用编译 2:面向对象js编写位置: 在a标签内写href:javascript;可以阻止跳转一旦引入了外部文件,内部的代码会忽略掉,js从上到下执行字面量是一些不可改变的值,都是可以直接使用的,但是一般不会直接使用变量可以保存字面量,可以任意改变。变量更加方便我们使用,声明
分类: 其他 发布时间: 08-05 22:43 阅读次数: 0

js流程控制语句以及基本的判断质数,输出乘法表编程

代码块一个{}整体,称为一个代码块。代码块的后边不用再写;js中的代码块只具有分组的作用,没有其他的用途。代码块内部的内容,在外部是完全可见的流程控制语句:1:条件判断语句if语句:if(条件表达式) 语句 先对条件表达式进行求值判断,如果表达式的值为true,则执行if后的语句 如果希望可以控制多条语句,放入{}形成一个代码块。不写只能控制一条语句。 但是还是尽量放入{}中,即使只有 一条语句。prompt()函数,弹出一个输入框,可以定义一个变量接收。...
分类: 其他 发布时间: 08-05 22:43 阅读次数: 0

js对象基础知识

对象:对象是一种复合的数据 的数据类型,在对象中可以保存多个不同数据类型。对象的分类:1:内建对象 在任何的ES的实现中都可以使用。2:宿主对象:由JS的运行环境提供的对象,主要指由浏览器提供的对象。BOM DOM3:自定义对象:由开发人员自己创建的对象创建对象 var obj=new Object(); 使用new关键字调用的函数,是构造函数, 构造函数是专门用来创建对象的函数。 使用typeof检查一个对象时,会返回object添加属性 obj.name=孙悟...
分类: 其他 发布时间: 08-05 22:43 阅读次数: 0

枚举对象中的属性并获取属性值

对象:函数也可以成为对象的属性,这个属性被叫做对象的方法;函数调用与方法调用只是名称的区别,本质是一样的。枚举对象中的属性:使用 for ...in 语句for (var n in obj){ //对象中有几个属性,就执行几次循环 //每次执行时,会将对象中的属性分别赋值给变量 console.log(n); } //n代表属性名,可以使用obj[n]取出属性值,不能用点,点代表 //属性名为n,但是obj中是没有这个属性的...
分类: 其他 发布时间: 08-05 22:42 阅读次数: 0

js全局作用域和局部作用域

作用域:指的是变量作用的范围在js中有两种作用域; 全局作用域:直接写在script标签中的js代码,都在全局作用域; 全局作用域在页面打开时创建,在页面关闭时销毁 在全局作用域中有一个全局对象window,它由浏览器创建,我们可以直接使用。 在全局作用域中创建的变量都会作为window对象的属性保存。 创建的函数都会作为window对象的方法保存 函数作用域:调用...
分类: 其他 发布时间: 08-05 22:42 阅读次数: 0

js申明提前以及this的指向

申明提前:在函数作用域中也有 声明提前的特性:使用var关键字声明的变量,会在函数中所有代码执行之前被声明。在函数中,没有用var 声明的变量,会设置为全局变量。定义形参相当于在函数作用域中声明了变量。函数声明也会在所有的代码执行之前执行。 this解析器在调用函数每次都会向函数内部传递进一个隐含的参数这个隐含的参数就是this.this 指向的是一个对象,这个对象称为函数执行的上下文对象 以函数形式调用,this是window。以方法的形式调用时,thi...
分类: 其他 发布时间: 08-05 22:42 阅读次数: 0

使用工厂模式创建对象

对象:使用工厂方法创建对象:function creatPerson(name,age,gender) { var obj=new Object(); obj.name=name; obj.age=age; obj.gender=gender; obj.sayName=function () { console.log(this.name); } return obj;...
分类: 其他 发布时间: 08-05 22:41 阅读次数: 0

原型对象与原型链

将函数定义在全局作用域,会污染全局作用域的命名空间,而且定义在全局中也不安全,容易被覆盖原型对象protoype我们所创建的每一个函数,解析器都会向函数中添加一个属性prototype当以构造函数创建的对象中有一个隐含的属性,指向原型对象,这个属性就是__proto__原型对象相当于一个公共的区域,所有一个类的实例都可以访问到这个这个对象访问一个对象的属性或方法,如果有直接使用,没有在原型对象中查找以后创建构造函数时,将对象共有的属性方法添加在构造函数的原型对象中,这样不会影响全局作用域.
分类: 其他 发布时间: 08-05 22:41 阅读次数: 0