- 博客(11)
- 收藏
- 关注
原创 36有效的数独---leetcode
题目判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。解题class Solution { public boolean isValidSudoku(char[][] board) { int len = board.length; //用来判断数字是否重复的位向量
2021-02-22 10:47:41
128
2
原创 面试前夕---常见排序算法总结
1. 插入排序---- 思路将数组分为两部分,一部分为有序的,一部分为无序的,每次将无序的第一个元素加入到有序的部分中,直到整个数组都有序为止----代码实现void insertSort(int [] nums){ for (int i = 1; i < nums.length; i++) { //无序数组下标从1开始 int temp = nums[i]; int j; for (j = i; j
2020-12-14 21:52:27
104
原创 数据结构与算法---二叉搜索树java实现
一、 二叉搜索树简介二叉搜索树是一棵左子树节点永远小于根节点,右子树永远大于根节点的二叉树二、实现细节1. 增加元素每次增加都在叶子结点,当要增加的元素等于根节点的值的时候不做操作直接将该数返回。当要增加的元素小于根节点的时候,在左子树加入该节点,并把左子树更新为增加节点后的左子树。当大于根节点的时候,在子右树加入该节点,并把右子树更新为增加节点后的右子树子树。2. 删除元素当要删除的元素小于根节点的时候,在左子树删除该节点,并把左子树更新为删除节点后的左子树。当要删除的元素
2020-11-27 21:30:39
185
原创 数据结构与算法---双链表java实现
实现简介采用了内部类实现Node节点用来存储数据,还用privious指针,和next指针myLinkedList内部使用init方法来进行数据的初始化,包括初始化首尾节点连接首尾节点指针,创建对象的时候调用构造函数执行init方法本类实现了最基本的增add、insert,删delete,改set,查get 方法,在进行链表操作时会检查数据的合法性当发生数组越界操作不成功返回false,成功返回true具体实现public class MyLinkedList<T>{ pr
2020-11-25 00:05:12
130
原创 javaSE--Lambda表达式
1.Lambda表达式的介绍函数式编程思想:在面向对象的语言中我们过分强调用对象来做事情所以会导致代码过于冗余,而函数式编程思想尽量忽略面向对象的复语法,强调做什么事情,而不是以什么形式做。举例面向对象线程创建的冗余代码:public class DemoLambda { public static void main(String[] args) { new T...
2020-03-06 12:34:12
98
原创 javaSE--线程安全问题的第三种种解决方式lock锁解决线程安全问题(模拟买票)
1.线程安全问起模拟参见前面文章2.lock锁解决线程安全问题lock锁所在的类:java.util.concurrent.locks.ReentrantLock , 该类是:***java.util.concurrent.locks.Lock***接口的实现类用于创建所对象,Lock接口中对于synchronized代码块的描述:*Lock 实现提供了比使用 synchronized 方...
2020-03-05 19:58:24
199
原创 javaSE--线程安全问题的第二种解决办法synchronized方法(模拟买票)
1.模拟买票模拟买票参看上一篇文章这里就不多说了2.synchronized方法解决线程安全问题原理查看这里 在这里其实原理和synchronized同步代码快一致,只不过相对于同步代码块这里少了锁对象的创建,将出 现线程安全问题的代码封装为synchronized修饰的方法中,synchronized修饰符位于方法属性修饰符 (public/protected/private)与方法...
2020-03-05 18:55:31
148
原创 javaSE--线程安全问题的第一种解决方式synchronized代码块(模拟买票)
1.买票案例模拟线程安全问题public class TicketImpl implements Runnable { private int ticket = 100; @Override public void run() { /** * 在这里模拟卖票 * 为了增加线程安全问题出现的概率使用sleep适当...
2020-03-03 12:56:41
224
原创 javaSE--多线程实现的两种方式
1. 继承Thread类继承Thread类之后重写run方法,在主函数中新建刚刚创建的子类对象调用start方法完成线程任务public class MyThread extends Thread { @Override public void run() { for (int i = 0; i < 20; i++) { Syste...
2020-03-03 12:28:29
804
原创 csp201903-2 24点游戏 -----java实现
#【题目背景】二十四点是一款著名的纸牌游戏,其游戏的目标是使用 3 个加减乘除运算使得 4张纸牌上数字的运算结果为 24。#【题目描述】定义每一个游戏由 4 个从 1-9 的数字和 3 个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号和其他字符,运算顺序按照四则运算顺序进行。其中加法用符号 + 表示,减法用符号 - 表示,乘法用小写字母 x 表示,除法用符号 / 表示。在游...
2019-09-22 21:02:56
392
原创 数据结构1、线性表---链式存储之单链表
数据结构1、线性表---链式存储之单链表一,线性表简介二,单链表的实现一,线性表简介------ 线性表是一种线性结构,它是由零个或多个数据元素构成的有限序列。线性表的特征是在一个序列中,除了头尾元素外,每个元素都有且只有一个直接前驱,有且只有一个直接后继,而头元素没有直接前驱,尾元素没有直接后继。-------数据结构中常见的线性结构有数组、单链表、双链表、循环链表等。线性表中的元素为某种...
2019-03-18 23:27:55
285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人