自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小张的记录

非典型程序员

  • 博客(87)
  • 收藏
  • 关注

原创 JAVA——图的遍历

1.图遍历的定义从图中某个顶点出发访问遍图中的所有顶点,并且每个顶点仅仅被访问一次。其中图的遍历分为两种,一种是图的深度优先遍历算法,一种是图的广度优先遍历算法。2.连通图的深度优先遍历算法(DFS)和广度优先遍历算法(BFS)图的深度遍历算法步骤:(1)首先选定一个未被访问过的顶点V作为起始顶点(或者访问指定的起始顶点V),并将其标记为已访问过;(2)然后搜索与顶点V邻接的所有顶点,...

2019-09-25 11:53:50 854

原创 Leetcode——242有效字母异位词

哈希表HashTable242.有效字母异位词【思考】1.排序O(NlgN)2.Map计数O(N)这个时候用一个哈希表来实现,而字母有26个正好对应一个26长度的数组,来存储也就是一个哈希表。【实现代码】...

2019-09-25 11:17:35 240

原创 Leetcode——238除自身以外数组的乘积

238.除自身以外数组的乘积给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入:[1,2,3,4]输出:[24,12,8,6]说明:请不要使用除法,且在O(n)时间复杂度内完成此题。【思路】根据题意,在O(n)时间复杂度内,于是此时想到首先遍历一...

2019-09-24 20:28:04 240

原创 JAVA知识捡漏——构造函数、抽象类和抽象方法

1.构造方法**概述和作用:**创建对象,给对象中的成员进行初始化,即在创建对象时,除了使用关键字new 之外 还得借助构造方法,来完成对类的实例化。构造方法格式特点:方法名与类名相同没有返回值类型,连void都没有没有具体的返回值2.构造方法分为无参构造方法和有参构造方法?(1)无参构造方法class Student{ public Student(){ System....

2019-08-29 15:46:18 457

原创 JAVA知识捡漏——拆箱和装箱

1.什么是装箱和拆箱自动根据数值创建对应的Integer对象,这就是装箱。自动将包装器类型转换为基本数据类型,这就是拆箱。2.装箱和拆箱是如何实现的java1.5开始的自动装箱拆箱机制其实是编译时自动完成替换的,装箱阶段替换为valueOf方法,拆箱阶段自动替换xxxValue方法。对于Integer、Short、Byte、Character、Long类型的valueOf方法,参数如果在...

2019-08-28 11:08:57 176

原创 Leetcode——位运算191.位1的个数

位运算介绍:实战常用的位运算操作:X&1==1 OR ==0 判断奇数偶数X=X&(X-1) 清零最低位的1X&-X 得到最低位的1191.位1的个数【思路】1.暴力判断每一位是否,和1做与运算,如果是1,则计数。这样的做法容易超时,而且有可能此时的数为负数,右移之后最高位仍要保持最高位是负数。2。使用x&(x-1)把最低位1变为0,则有多少个1...

2019-08-21 20:08:54 212

原创 Leetcode——50.Pow(x,n)、169求众数

递归&分治递归-循环:通过函数体进行循环分治:没有所谓的中间结果,也就是不会重复计算,当出现重复计算和递归差不多。50.Pow(x,n)实现pow(x,n),即计算x的n次幂的函数。示例1:输入: 2.00000, 10输出: 1024.00000示例2: 输入: 2.10000, 3输出: 9.26100示例3:输入: 2.00000, -2输出: 0.2...

2019-08-21 14:58:54 157

原创 Leetcode——70爬楼梯、120三角形的最小路径和

动态规划Dynamic Programming1,递推(递归+记忆)2.状态的定义:opt[n],dp[n],fib[n]3,状态转移方程:opt[n]=best_of(opt[n-1],opt[n-2],…)4.最优子结构DP vs 回溯 vs 贪心回溯(递归) ——重复计算贪心——永远局部最优DP——记录局部最优子结构/多种记录值70.爬楼梯假设你正在爬楼梯。需要 n 阶你...

2019-08-18 16:45:34 216

原创 Leetcode——703数据流中的第K个大元素、237滑动窗口最大值

优先队列:PriorityQueue正常入,按优先级出实现机制:1.Heap(Binary,Binomial,Fibonacci)2.Binary Search Tree703.数据流中的第K个大元素设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,...

2019-08-05 14:11:33 262

原创 诺瓦科技面试总结

一. 进程间的通信进程间的通信(IPC)是指在不同进程之间传播或交换信息。IPC的方式通常有管道、消息队列、信号量、共享存储、Socket和Streams等。其中Socket和Stream支持不同主机上的两个进程IPC。管道:匿名管道概念:在内核中申请一块固定大小的缓冲区,程序拥有写入和读取的权利,一般使用fork函数实现父子进程的通信。(它可以看成一个特殊的文件。对于它的读写也可以使...

2019-08-05 12:03:32 3463 3

原创 Leetcode——20有效的括号

20.给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:...

2019-07-31 20:51:02 114

原创 Leetcode——5最长回文子串

5.给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例2:输入: "cbbd"输出: "bb"【思路】解决这类 “最优子结构” 问题,可以考虑使用 “动态规划”:1、定义 “状态”;2、找到 “状态转移方程”。记号说明: 下文中,使用记号 s[...

2019-07-31 19:40:37 115

原创 Leetcode——118杨辉三角

118.给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数数它左上方和右上方的数的和。示例1:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]【思路】这个题就是根据杨辉三角形的推导过程求出最终的杨辉三角形。【实现代码】class Solutio...

2019-07-29 10:41:48 168

原创 Leetcode——171Excel列表序号

171.给定一个Excel表格中的列名称,返回其相应的列序号。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例1:输入: "A"输出: 1输入: "AB"输出: 28输入: "ZY"输出: 701【思路】标签:字符串遍历,进制转换初始化结果ans ...

2019-07-28 11:29:17 203

原创 Leetcode——108将有序数组转换为二叉搜索树、109将有序链表转换为二叉搜索树

108.将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -1...

2019-07-27 14:53:41 179

原创 Leetcode——230二叉搜索树中第k小的元素

给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例2:输入: root = [5,3,6,2,4,null,null,1], k = ...

2019-07-26 15:04:25 109

原创 Leetcode——94二叉树的中序遍历、102二叉树的层次遍历

94.给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]【思路1】这里使用递归的方法来进行遍历,这里是中序遍历。【实现代码】/** * Definition for a binary tree node. * public class TreeNode { * i...

2019-07-25 14:50:17 148

原创 Leetcode——22括号生成(递归)

22.给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:示例:[ "((()))", "(()())", "(())()", "()(())", "()()()"]【思路】这个题使用递归法,但是题目要求是有效的括号。【实现代码】class Solution { public ...

2019-07-24 16:17:34 246

转载 设计模式——装饰模式(结构型)

装饰模式(1)模式动机  装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任,换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不需要创造更多子类的情况下,将对象的功能加以扩展。这就是装饰模式的模式动机。(2)模式定义  装饰模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰...

2019-07-24 15:11:51 188

原创 Leetcode——46全排列、47全排列2(回溯法)

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]【思路1】位操作:数组中的每个元素,可以有两个状态,在数组或者不在数组,所有状态的组合就是所有...

2019-07-24 12:22:02 247

原创 Leetcode——78子集

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]...

2019-07-22 14:49:34 115

原创 设计模式——代理模式(结构型)

观察者模式(1)模式动机建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机。(2)模式定义观察者模式(Observer Pattern):定义对象...

2019-07-22 11:14:03 99

原创 设计模式——策略模式(行为型)

策略模式(1)模式动机为了解决针对一项任务有多个解决的方式(策略)的问题,可以订定义一些独立的类来封装不同的算法,每一个类封装一个具体的算法,在这里,每一个封装算法的类我们都可以称之为策略(Strategy)。为了保证这些策略的一致性,一般会用一个抽象的策略类来做算法的定义,而具体每种算法则对应于一个具体策略类。(2)模式定义策略模式(Strategy Pattern):定义一系列算法,将...

2019-07-21 22:30:51 302

原创 Leetcode——237删除链表中的节点

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.说明:链表至...

2019-07-21 21:27:49 107

原创 设计模式——单例模式(创建型)

1.什么是设计模式?参考链接:https://blog.csdn.net/ljh0302/article/details/81562415https://designpatterns.readthedocs.io/zh_CN/latest/creational_patterns/singleton.html  设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。它描述了...

2019-07-20 14:57:02 222

原创 Java面试总结——计算机网络

1.OSI,TCP/IP,五层协议的体系结构,以及各层协议(1)OSI七层:物理层(集线器,网卡,网线,中继器,调制解调器),数据链路层(网桥,交换机),网络层(路由器,决定使用哪条路径通道子网),传输层(完成向用户提供可靠的端到端的服务),会话层,表示层,应用层。(2)TCP/IP协议包括两部分:传输控制协议/网际协议,5个相对独立的层次:应用层、传输层、互联网层,网络接口层和物理层。对应关...

2019-07-19 11:26:05 380

原创 Java面试总结——基础知识

基本类型与运算1.值传递和引用传递有哪些区别(1)值传递  在方法调用中,实参会把它的值传递给形参,形参只是用实参的值初始化一个临时的存储单元,因此形参与实参虽然有着相同的的值,但是却有着不同的存储单元,因此形参的改变不会影响实参。(2)引用传递  在方法调用中,传递的是对象(也可以看做是对象的地址),这时形参与实参的对象指向同一块存储单元,因此对形参的修改就会影响实参的值。  在ja...

2019-07-17 15:52:17 75

原创 Java面试总结——字符串与数组

1.“==”、equals和hashCode有什么区别(1) “==”运算符来比较两个变量的值是否相等。该运算符用于比较变量对应的内存中所存储的数值是否相同,要比较两个基本类型或两个引用变量是否相等,只能使用该运算符。(2)equals是Object类提供的方法之一。在没有覆盖“equals(Object)”的情况下,与 ==没有区别。(3)hashCode()方法是从Object类中继承出...

2019-07-16 21:33:11 151

原创 Java面试总结——异常处理

1.finally块中的代码是什么时候被执行?finally块的作用就是为保证无论出现什么情况,finally块里的代码一定会被执行,finally执行也在return之前。如果try-finally,catch-finally中都有return,那么finally中的return将会覆盖别处的return语句。对于基本数据类型,finally改变return的值对返回值没有什么任何影响,而对引...

2019-07-16 20:53:29 90

原创 Java面试总结——输入输出流

1.java中有几种类型的流?JDK提供的流继承了四大类:  InputStream(字节输入流),OutputStream(字节输出流),Reader(字符输入流),Writer(字符输出流)。  (1)根据处理数据的类型不同,流可以分为两大类:  字节流以字节(8位二进制)为单位进行处理。主要用于读写诸如图像或声音的二进制数据。   字符流以字符(16位二进制)为单位进行处理。  ...

2019-07-15 21:59:37 410

原创 Java面试总结——平台与内存原理

1.JVM加载class文件的原理机制是什么当运行指定程序时,JVM会将编译生成的.class文件按照需求和一定的规则加载到内存中,并组织成为一个完整的Java应用程序,这个加载过程是由**类加载器(ClassLoader)**来完成的。隐式加载显式加载使用new等方式创建对象时,隐式调用类加载到JVM直接调用class.forName()方法把所需的类加载到JVM中...

2019-07-14 16:37:03 85

原创 Java面试总结——容器

1.Java Collections框架和Collection接口(1)Java Collections框架中包含了 大量集合接口以及这些接口的实现类和操作它们的算法。具体而言,主要提供了List、Queue、Set、Stack和Map等数据结构。Collections类不能实例化,如同一个工具类,其中提供了一系列静态方法,用于对几何中元素进行排序、搜索以及线程安全等各种操作。①排序(sort...

2019-07-13 17:18:40 117

原创 JAVA面试总结——多线程

多线程1.如何实现多线程(1)继承Thread类,重写run()方法package study_java;class MyThread extends Thread{//创建线程类 public void run(){ System.out.println("Thread body");//线程的函数体 }}public class thread { public s...

2019-07-12 17:14:16 116

原创 Java面试总结——Java web(二)

Java web面试宝典(二)1.如何使用JSP与Servlet实现MVC模型:MVC是Model(模型)、View(视图)、Controller(控制器)字母的缩写,MVC强制地分离 web应用的输入、处理和输出。(1)模型(业务逻辑层)模型表示企业数据和业务逻辑,它是应用程序的主体部分。(2)视图(表示层)视图是用户看到的并与之交互的界面。(3)控制器控制器接收用户的输入并调用...

2019-07-11 20:55:55 200

原创 Leetcode——动态规划triangle

palindrome-partitioning-ii题目描述:Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers(相邻的) on the row below.For example, given the following tria...

2019-07-11 16:41:30 114

原创 JAVA面试总结——Java web(一)

Java web面试宝典(一)1.页面请求的流程:一个web应用程序一般都是由客户端程序与服务器端程序两部分组成。其中客户端主要是指用户和浏览器。用户通过浏览器查找所需资源,而这些资源位于服务器上。用户输入网址。把用户请求发送给服务器。服务器查找请求的网页找到用户请求的网页发送响应消息浏览器显示返回结果2.HTTP中GET和POST方法有什么区别Get是最简单的一种请求方法...

2019-07-10 17:10:43 180

原创 Leetcode——动态规划palindrome-partitioning-ii

palindrome-partitioning-ii题目描述:Given a string s, partition s such that every substring of the partition is a palindrome.Return the minimum cuts needed for a palindrome partitioning of s.For exampl...

2019-07-03 16:37:04 145

原创 Leetcode——回溯法 palindrome-partitioning

palindrome-partitioning题目描述:Given a string s, partition s such that every substring of the partition is a palindrome.Return all possible palindrome partitioning of s.For example, given s =“aab”,R...

2019-07-03 15:23:03 168

原创 Leetcode——贪心算法gas-station

gas-station题目描述:There are N gas stations along a circular route, where the amount of gas at station i isgas[i].You have a car with an unlimited gas tank and it costscost[i]of gas to travel from sta...

2019-07-02 15:27:10 303

原创 Leetcode——动态规划candy

word-break题目描述:There are N children standing in a line. Each child is assigned a rating value.You are giving candies to these children subjected to the following requirements:Each child must have ...

2019-07-02 11:25:58 178

空空如也

空空如也

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

TA关注的人

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