自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张凡的博客

今天这个事让我知道了,拖延症害死人啊!

  • 博客(70)
  • 资源 (2)
  • 收藏
  • 关注

原创 java基础-增强for循环

增强for循环,比普通的for循环简洁多了,必须要熟练输出一维数组 String[] ni=new String[]{"国家","nih"}; for (String i : ni) { System.out.print(i+"\t"); }输出二维数组 for (int[] arr : dp) { for (int num : arr) { Sys

2020-11-11 15:26:41 129

原创 程序员的自我修养-知识点汇总

java基础:集合多线程创建(三种)生命周期(新建,就绪,运行,阻塞,死亡)控制(join,sleep,yield,改变优先级)同步 4种方式(临界区,互斥量,信号量,事件)7种方法(同步方法,同步代码块,volatile,重入锁,局部变量,阻塞队列,原子变量)通信(全局变量,消息,事件CEvent类)线程池相关类(threadlocal类,线程安全...

2019-11-09 16:40:59 248

原创 五大常用算法之三:动态规划

动态规划:动态规划(Dynamic Programming,简称DP),需要分解出问题的子结构以及通过子结构重新构造最优解。动态规划不像回溯法,有套路可以套用,动态规划需要大量练习,才能掌握规律。一般思路:1.判断问题的子结构(也可看作状态),当具有最优子结构时,就可能使用动态规划。2.求解重叠子问题。一个递归算法不断地调用同一问题,递归可以转化为查表从而利用子问题的解。(注意与分...

2018-05-01 11:43:31 311

原创 排列组合的问题

返回所有不重复的全排列。

2023-05-24 10:52:07 99

原创 递归的理解

递归的例题,给读者思考

2022-08-03 16:23:20 525

原创 BFS的常见算法题-二叉树的最小深度

BFS的使用

2022-07-31 17:54:13 284

原创 54. 螺旋矩阵 和 59. 螺旋矩阵 II

螺旋打印矩阵

2022-07-15 18:30:31 168

原创 33.搜索旋转排序数组

33. 搜索旋转排序数组

2022-07-15 11:49:35 206

原创 动态规划-最长回文子串

最长回文子串

2022-07-06 16:14:36 237

原创 动态规划-打家劫舍

动态规划算法题

2022-07-04 17:11:28 153

原创 Mysql的事务,锁,MVCC

主要介绍了Mysql的并发版本控制,以及为什么要用它

2022-06-27 10:51:32 96

原创 数组操作的算法题

算法题中,对数组的操作

2022-06-14 18:42:35 136

原创 滑动窗口法的题目

目录最长不重复字串(连续)长度最小的子数组最大连续1的个数最长不重复字串(连续)如abcabcbb,最长长度为3,即“abc”,或“bca”等等,返回3. public int lengthOfLongestSubstring(String s) { char[] chars = s.toCharArray(); HashSet HashSet = new HashSet(); int maxLength = 0;

2022-05-08 19:43:07 152

原创 阿里Java开发手册解读

为什么会这样呢?因为表达式1或表达式2只要有一个是基本类型,那么另一个包装类型都要拆箱。然后赋给包装类型的result时,都要装箱。除非表达式1,2,被赋的值都是包装类型,才不牵涉拆装箱。而拆箱使用c.intVaule(),装箱使用Integer.vauleOf(c)所以,本身就是空的值,用c.intVaule(),肯定就空指针啦———————————————————————————————————————————HashMap里有这4个最主要的变量。size,loadInfacto..

2022-04-17 00:31:28 226

原创 链表有环(引申题:环在哪里)

public class Test { private static class ListNode { int value; ListNode next; } public static boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } ListN.

2022-03-10 00:08:23 93

原创 算法题:数组中重复的次数

1.我在面试中遇到过如下题目:一个String数组,输出出现次数最多的前三个以及次数,如 ababc,输出a:2,b:2,c:12.找出数组中曾经重复过的数字https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 ...

2022-03-10 00:02:22 219

原创 删除最外层的括号

这个也很简单,主要是在每次遍历到右括号的时候,从栈里pop()一个出来,如果此时栈为空,则说明找到了消解项。力扣 public String removeOuterParentheses(String s) { int start = 0; StringBuilder stringBuilder = new StringBuilder(); int len = s.length(); Stack stack = new Stac..

2022-02-23 19:23:15 143

原创 算法题:回文数

力扣 思路:用栈 public static boolean isPalindrome(int x) { if (x < 0) { return false; } if (x == 0) { return true; } //怎么取每位数字? String s = String.valueOf(x); int len =...

2022-02-23 14:21:39 142

原创 有效的括号

public boolean isValid(String s) { int len = s.length(); if (len % 2 != 0) { return false; } HashMap hashMap = new HashMap(); hashMap.put('{', '}'); hashMap.put('[', ']'); hashMap.put('('.

2022-02-23 11:10:25 296

原创 二叉树最近公共祖先

package Leetcode.ListNode;/** * @Author: YCKJ3803 * @Date: 2021/3/2 11:46 * @Description: */public class lowestCommonAncestor { private static class TreeNode { int value; TreeNode left; TreeNode right; } public s.

2021-03-02 21:39:33 207

原创 层序输出二叉树

package Leetcode;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;/** * @Author: YCKJ3803 * @Date: 2021/2/3 13:50 * @Description: 层序打印二叉树。这是非常简单的一题。就是用队列!!!!! * 先从队列中取出一个,再往队列插入左右节点。 */...

2021-03-02 17:55:55 350

原创 字符串最长重复连续子串

比如字符串aaaabbbcddc,因为aaaa最长,返回4本题是面试遇到的真题,需要熟练手写

2021-02-23 15:46:50 659

原创 Idea使用指南

安装:只选一个X64,其余一路next使用:

2020-09-08 21:04:01 1276

原创 装jdk

首先从官网上下载jdk安装包,如果后缀 i586,则是32位的,大部分电脑不要选。我们要选后缀X64的,这才是64位电脑应该选的。双击jdk,一路next。装好之后,还会弹出让你安装jre。因为jdk自带jre,所以这个jre装不装都行。装好之后,用cmd去jdk目录下的bin,敲出java -version,有大量信息,则说明jdk安装成功,下面要按环境变量。新建一个系统变量JAVA_HOME ,变量值为D:\Program Files\Java\jdk1.8.0_251...

2020-09-08 20:03:13 110

原创 git使用教程

由于本文为自己而写,所以只写要注意的地方问题一:在github上创建了一个repositories,本地新建了一个项目。那么怎样让本地代码与远程仓库产生联系呢?以上图片可以说明一切了,有三种方式可以。第一种是全新的项目,手动创建。怎么可能?我们都是用idea自动创建项目的。这里采取第二种。在已经初始化的项目中,add到remote的仓库,再push上去。问题二:每个reposito...

2020-03-13 22:32:33 183

原创 反射

反射是JAVA开发的高级特性,官方概念如下:JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。其实就是,反射可以知道任意类或对象的属性和方法,比如,我建立了一个student类如下,内含公有,私有的属性和方法:package c...

2019-12-20 09:10:31 96

原创 SpringBoot+MyBatis搭建迷你小程序

本项目如下:maven的安装目录在哪?setting文件放在哪?仓库在哪?(分别为G:\Program Files (x86)\apache-maven-3.5.4\conf,与G:\Program Files (x86)\apache-maven-3.5.4\repository)dao层的设计:表设计:略实体类:getset方法快捷键:alt+insert,全选所有变量,构建g...

2019-12-07 15:15:09 116

原创 剑指offer 二维数组找目标值

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。规律:首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束:如果该数字大于要查找的数字,剔除这个数字所在的列:如果该数字小于要查找的数字,剔除这个数字所在的行。也就是说如果要查找的数字不在数组的右上角,则每...

2019-12-06 14:19:30 199

原创 mysql篇---windows环境

1.windows环境下的mysql忘记密码了会很麻烦,试了好多种攻略都不行,只得重装。所以安装好后,要找个记事本写root密码。2.如果重装的话,直接到mysql官网,下载最新版https://dev.mysql.com/downloads/installer/然后逐步安装好,下面这一篇较好:https://www.runoob.com/w3cnote/windows10-mysql...

2019-12-02 15:33:23 114

原创 数据结构-归并排序

先粘贴下参考文献:https://www.cnblogs.com/chengxiao/p/6194356.html 写的很好

2019-11-08 15:03:29 114

原创 二分查找

二分查找是最简单的查找,本科阶段数据结构就应该学好的,现在来炒剩饭,重打基础。二分查找,必须是有序的,如果数组不是有序,则先排序,再查找。递归的二分查找是均分的,每次用中心点与目标值比较,再递归操作。递归的代码如下:package Collection;public class BinarySearch { /** * 使用递归的二分查找(递归的均分折半)...

2019-11-08 10:43:58 127

原创 堆排序详解

堆排序是必须要会手写的。原理如下:1.从最后一个非叶子结点开始,从左到右,从上到下,与父节点进行交换,构建大顶堆2.将堆顶元素(此时最大)与末尾元素交换,就获取了最大值了,再对剩下的n-1个节点也进行此类操作。就可以把最大值逐渐交换到最末端,实现大顶堆的升序排序。import java.util.Arrays;/** *1.构建一个大项堆。2.将堆顶与末尾交换。3,持续...

2019-11-07 10:34:53 192

原创 剑指offer-17 合并链表

2个链表,本来都是从小到大的顺序排列的,现在要求合并,合并后依然从小到大思路:先设定一个pointer指针,指向新链表的新节点。1.如果链表1为空,则新链表就是链表2,反之一样2.创建一个指针pointer,在子链表都不为空时,比较两个链表中节点值,pointer指向较小值,并遍历全部的链表3.如果其中任何一个链表比较结束,另一个还有,则将剩余链表直接接到新链表后面。注:不要用...

2019-10-10 17:40:20 127

原创 剑指offer-13 在o(1)内删除链表的某一节点

一个链表,需要对它进行删除操作,那么怎么在o(1)的时间复杂度内将其准确删除呢?其实,就是将某个node.value赋为0,其左右的指针打断再重连即可。关键是怎么重连。比如,我要删除i节点,那么让h直接指向j节点即可。但是,找到h节点,要遍历n次,不符合要求。所以,我们将j值复制到i处,再指向下下个点即可。具体步骤如下:1.判断head与要删除的点是否为null,如果为null...

2019-10-10 15:59:50 119

原创 剑指offer-10 二进制数字1的个数

输入一个int型数字,输出它作为二进制的1的个数。如9的二进制为1001,有2个1,则输出2。法一:因为int型有4个字节,一共32位,每次将输入右移1,并和1进行“与”操作。将结果累加,则为1的个数。public class Test10{ public static int numberofone(int n){ int result = 0; ...

2019-10-10 14:27:50 143

原创 介绍Latex神器——Overleaf的方法

向大家介绍2个神网站,一个是腾讯在线文档,一个是overleaf腾讯在线文档就不多介绍了,可以直接百度网址并使用,它有2个亮点,1.特别简洁,高效。2.可以多人在线,共同编辑同一个文档。(在笔者参加研究生数学建模的时候,三个队员编辑同一篇论文,非常有效果!)----------------------------------------------------------------...

2019-09-26 01:03:23 144334 16

原创 剑指offer-两个栈实现-队列尾部插入,头部删除

大家都知道,队列是一个尾部(rear)插入,头部(front)删除的数据结构。本题要求,用两个栈,构造出一个队列出来。本题中,构造两个栈,stack1和stack2,1用来插入,2用来弹出。其中,栈1的插入很简单,函数体内部,直接用add方法即可。但是栈2的弹出,要考虑此时栈2是不是有值,如果2为空,1不空。则弹出1的值,add进2。如果此时2还没有值,则抛异常,如果有值,则pop出来。拓...

2019-09-06 21:35:06 574

原创 剑指offer-2替换空格为指定字符串

该题是剑指offer的基础题,输入一个字符串,里面有一些空格,将空格填写“%20”这三个字符。然后输出。下面是简单代码。public class Test0401{ public static void replaceblank(char[] string,int usedLength) { //统计空白字符数 int blanknum = 0...

2019-09-06 18:03:44 108 1

原创 剑指offer-输出字符串所有种类的排列组合

常规题,先校验长度,不符合则直接输出;符合则判断是否为最后一个字符,是则直接new对象输出,不是则交换begin和i位置的数字,再用递归输出。public class Test28{// 先校验 public static void permutation(char[] chars){ if (chars.length<1 || chars==null...

2019-09-03 09:21:37 334

原创 剑指offer-15 链表倒数第k个结点

题意题目描述输入一个链表,输出该链表中倒数第k个结点。背景头节点,有指针逐个指向下面的结点,就像下面的样子。这个链表的左边是头节点,右边是尾结点,从头到尾可以遍历,但反过来不行。思路:用两个指针,第一个指针走(k-1)步,到第k个结点,此时第二个指针在起点。然后,两个指针同时走,第一个指针到尾结点时,第二个指针恰好到第倒数第k个结点。p...

2019-07-25 15:25:20 83

google-blockly

这是一个谷歌可视化界面的小程序,可以拖拽小方块,达到自动生成代码的能力,内含源码

2018-05-20

空空如也

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

TA关注的人

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