Java-Learning
Java学习项目,学习Java相关知识点,记录一些重要算法问题的代码实现。
注意:com.nowcoder包下是所有算法实现的代码,以下记录的算法代码实现均在此包下,其他作为日常学习使用
2020年8月16日
最大坡宽度 --单调队列
2020年8月10日
滑动窗口最大值 -- 单调队列
2020年7月11日
凯撒密码解密问题
无重复字符的最长子串 -滑动窗口2解法
找到字符串中所有字母异位词 - 滑动窗口
2020年7月5日:
2020年6月13日
2020年6月7日
2020年6月5日
2020年6月2日
查找算式最小值正确解法:字符串的递归排序 HuaWei_Test20200327_01_02
2020年5月31日
排列组合一个字符串:给一个字符串,比如ABC, 把所有的排列,即:ABC, ACB, BAC, BCA, CAB, CBC 都找出来。
https://blog.csdn.net/HelloZEX/article/details/81178615
解题思路(回溯方法递归调用):对于一个n 位的字符串来讲,它是n-1位字符串的排列 加上 没有在 n -1 位字符串里 那个字符 的排列。
2020年5月25日
计算链表之和
2020年5月22日
字符串相乘
2020年5月17日
螺旋矩阵
2020年5月12日
字符串相乘
2020年5月8日
2020年4月23日
下一个排列
2020年4月20日
最接近的三数之和
2020年4月19日
大数相乘
2020年4月18日
电话号码的字母组合
2020年4月16日
Z 字形变换
2020年4月6日
选择排序
插入排序
单向环形链表
2020年4月5日
日期函数
2020年4月4日
字符占用问题
PriorityQueue优先队列排序使用的注意点
字符串过滤问题
空白字符串替换问题
最大客人数量
多道批处理
报文转义
流水线问题
新增岛屿面积计算问题
2020年4月1日
变量替换
岛屿的最大面积
2020年3月31日
跳跃比赛
寻找最长连续子串
优先级队列问题
磁盘容量排序
2020年3月29日
计算岛屿的数量问题
质数分解问题
2020年3月28日
最长有效括号子串
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和
猜数字
2020年3月27日
插入排序原理
查找算式最小值
2020年3月26日
2020年3月25日
输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。
整理代码结构
冒泡排序
二分查找归档
2020年3月21日
新增快速排序算法实现
SingleHungryModel
单例模式-饿汉模式
SingleLazyModel
单例模式-懒汉模式,多线程环境下可能存在线程安全问题
SingleDoubleCheckLock
单例模式-双重校验锁模式(在懒汉模式的基础之上进行优化,达到最优,线程安全)
ArrayDemo
有数组a[n],用java代码将数组元素顺序颠倒
DefinationStack
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
DeleteFolder
定时任务删除指定目录
Fibonacci
斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
FindArray
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
FindKthToTail
输入一个链表,输出该链表中倒数第k个结点。
HashMapCountChar
给定一个字符串,获取字符串中每个字符出现的次数
HasSubtree
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
JumpFloor
跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
JumpFloorII
变态跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
Merge
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
MinNumberInRotateArray
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
MirrorTree
二叉树镜像问题: 操作给定的二叉树,将其变换为源二叉树的镜像。
NumberOf1
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
PokerDemo
模拟斗地主洗牌发牌
PrintListFromTailToHead
输入一个链表,从尾到头打印链表每个节点的值。
PrintMatrix
顺时针打印矩阵问题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
ReConstructBinaryTree
重构二叉树:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
RectCover
矩形覆盖问题:我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
ReOrderArray
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
ReplaceSpace
请实现一个函数,将一个字符串中的空格替换成“%20”
ReverseList
反转链表:输入一个链表,反转链表后,输出链表的所有元素。
SellTickedDemo
模拟电影院售票(Thread实现)
SellTickedDemo2
模拟电影院售票(runnable实现)
StackToQueue
用两个栈实现一个队列的功能?要求给出算法和思路!
java8-Lambda
Lambda 是一个 匿名函数,我们可以把 Lambda表达式理解为是 一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。