![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程学习笔记
文章平均质量分 64
coder 明轩
此生无悔入 Java,立志成为架构师~
展开
-
labuladong算法小结
1. 数据结构的存储方式2. 数据结构基本操作——遍历+访问线性 for/whilevoid traverse(int[] arr) { for (int i = 0; i < arr.length; i++) { // 迭代访问 arr[i] } } 非线性 递归链表遍历框架兼具迭代和递归结构:class ListNode{ int val; ListNode next; }void traverse(ListNod原创 2021-06-30 22:15:11 · 15359 阅读 · 0 评论 -
面试刷leetcode算法题整理(基础)
查找 二分简单二分二分方式找左边界/右边界搜索方式找左右边界在排序数组中查找元素第一个和最后一个位置M 二分 找左边界 右边界 | 更简单做法,利用排序数组,二分之后直接向左右搜索,不是 target 就停止//网友这个 java 二分法挺好的,找到目标值后开始向左右搜索//限制就是只能在排序数组中使用class Solution { public int[] searchRange(int[] nums, int target) { int len...原创 2021-03-13 12:24:36 · 690 阅读 · 0 评论 -
华为机试23题总结
第一题 勾股元组数// 如果三个正整数A B C ,A²+B²=C²则为勾股数 // 如果ABC之间两两互质,即A与B A与C B与C均互质没有公约数, // 则称其为勾股数元组。// 请求出给定n m 范围内所有的勾股数元组// 输入描述// 起始范围 1<n<10000 n<m<10000// 输出目描述// abc 保证a<b...原创 2021-02-28 21:24:50 · 26811 阅读 · 8 评论 -
二分查找法
借鉴于《数据结构-严蔚敏》,《labuladong 算法小抄》后者给出的代码更为完善。一共三种二分查找法,后两者针对有重复值的情况。1 简单二分查找2 左边界二分查找3 有边界二分查找1.简单二分查找法测试代码import java.util.Arrays;import java.util.Random;public class DemoBinarySearch { public static void main(String[] args){ .原创 2021-02-28 18:26:27 · 120 阅读 · 0 评论 -
五种常用排序算法 java 实现
时间复复杂度 空间复杂度 是否稳定 存储方式 备注 冒泡 On2 O1 稳定 (相邻交换) 可链式存储 移动次数较多,时间性能差于插入算法。 初始值无序,n 较大时不宜采用。 选择 On2 O1 不稳定 (跳跃交换) 可链式存储 移动次数较少,当每个数据占空间较大时,比插入排序快。 插入 On2 O1 稳定...原创 2021-02-27 22:49:18 · 190 阅读 · 1 评论 -
Java入门第三季6-5扩展练习-随机字符串排序
原课程地址https://www.imooc.com/video/4254*扩展练习要求*利用Collections.sort()方法对泛型为String的List进行排序版本2*1.创建完List<String>之后,往其中添加10条随机字符串*2.每条字符串的长度为10以内的随机整数*3.每条字符串的每个字符都是随机生成的,字符可重复*4.每条随机字符串不可重复下面是我写的方法,需要放入一个测试类中,并在main函数中运行。(Collections.sor...原创 2021-01-26 12:04:49 · 115 阅读 · 0 评论 -
[交作业]Java入门第三季7-1综合实战:简易扑克牌游戏
本篇实现的是imooc Java基础学习第三季7-1综合实战:简易扑克牌游戏(https://www.imooc.com/video/5475)文章目录 踩坑分享 代码结构 代码 运行结果 踩坑分享 第一个坑:洗牌shuffle第二个坑:比较手牌大小Comparator待完善处:尚未完全掌握面向对象的程序设计思维从早上9点开始写到晚上9点多才写完,第一次用Java写完整代码,很多不熟悉的地方暴露出来。这个作业和老师前面讲的学生选课系统.原创 2021-01-24 22:37:09 · 587 阅读 · 0 评论 -
Java基础二 面向对象 学习笔记
时间万物皆对象类是对象的模板抽象概念以类class创建(实例化)具体的对象(Object)Java创建类的语法public class dog{ //类的内容}类首字母大写,对象首字母小写创建类的实例对象 类名 对象名 = new 类名(); Dog duoduo = new Dog();成员变量定义public class Dog{ String name; int a...原创 2021-01-21 11:29:38 · 74 阅读 · 0 评论 -
JAVA基础一学习笔记
标识符区分大小写可以有字母、数字、下划线、$组成,但不可有@%和空格,也不能以数字开头数值型 整数类型byte布尔型 boolean引用数据类型 类接口 interface需要学习package以及文档注释的用法算出运算符++和--出现在操作数左边和右边是不一样的a=5;b=a++;//先将a的值赋给b,然后再进行自增运算c=5;d=++c;//c先执行自增,再将变量值赋给d结果是 a=6,b=5,c=6,d=6;Ja...原创 2021-01-20 11:03:07 · 78 阅读 · 0 评论 -
头结点的作用
数据结构中,在单链表的开始结点之前附设一个类型相同的结点,称之为头结点。头结点的数据域可以不存储任何信息,头结点的指针域存储指向开始结点的指针(即第一个元素结点的存储位置)。作用1、防止单链表是空的而设的,当链表为空的时候,带头结点的头指针就指向头结点,如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL。2、是为了方便单链表的特殊操作,能有效减少代码量,在插入在表头或者删除第一个结点时不用考虑特殊情况,删除或插入用户的第一个节点的值和删除或插入中间的值用一样的代码,这样就保持了单链表转载 2021-01-13 15:59:56 · 9018 阅读 · 0 评论 -
郝斌数据结构学习笔记(8)快速排序练习代码
郝斌数据结构p76简述了五种常用排序流程,以及详细讲解了快排算法原理及代码实现重点内容:冒泡插入选择排序快速排序归并排序除了快排已经测试过,其他的自己再去找代码看并测试笔记:本次笔记很简略模块三 查找和排序折半查找排序冒泡(自己找代码看懂测试)插入选择快速排序(已测试)归并排序排序和查找的关系排序是查找的前提排序是重点练习代码如下#include<stdio.h>void Qu...原创 2021-01-12 22:51:23 · 119 阅读 · 0 评论 -
郝斌数据结构学习笔记(7)树与练习代码
郝斌数据结构课p60-p75讲了树重点内容:树包括一般树,二叉树,森林,算法比较成熟的是二叉树;父亲节点,孩子结点,二叉树指针域指向左右孩子结点;将非线性结构存入线性结构中,需要对树进行处理,包括先序、中序、后续遍历,都是对树的线性描述;二叉树实现用到了先序中序后续的递归实现;二叉树应用在操作系统线程等多种领域。学习笔记如下:模块二 非线性结构树树定义专业定义:1.有且只有一个称为根的结点2.有若干个互不相交的子树,这些子树本身也是一棵树通俗定.原创 2021-01-12 18:58:39 · 150 阅读 · 0 评论 -
郝斌数据结构学习笔记(6)递归和练习代码
郝斌数据结构视频p50-p58讲递归,递归应用广泛,操作系统中函数调用流程就是递归的方式,举了阶乘,100求和,汉诺塔三个递归代码例子,递归算法稍微复杂,不易理解,以看懂经典算法为目标,不要求自己创造发明,递归包括自己调用自己和自己调用别人调用自己,对计算机来说是一样的,但是对人来说挺难理解。笔记如下:专题 递归定义:一个函数自己直接或间接调用自己递归必须满足的三个条件1.递归必须有一个明确的终止条件2.该函数所处里的数据规模必须是递减的3.这个转化必须是.原创 2021-01-12 10:01:04 · 92 阅读 · 0 评论 -
郝斌数据结构学习笔记(5)队列与练习代码
今天看郝斌数据结构p26-p50包括栈、队列、递归前两节,栈上一篇写了,这篇写队列重点:队列也分动态队列和静态队列,动态用链表实现较为简单,静态用数组实现稍微复杂。代码中用的数据结构就是数组的结构。队列先进先出,也是受限制的数组,front队首只能执行出队,rear队尾只能执行入队。听课了解原理后写代码挺快的。线性结构常见2种应用之二 队列定义一种实现先进先出的存储结构分类链式队列——链表实现出队 front (相当于栈的Top)入队 rear(相当于.原创 2021-01-11 22:02:51 · 156 阅读 · 0 评论 -
郝斌数据结构学习笔记(4)栈与练习代码
郝斌数据分析视频p30-p35讲了栈内容重点:动态栈较常用,动态栈本质上就是受限的链表。只能从链表顶部插入或删除元素。会用到两个结构体,1是链表结构体,2是栈结构体栈结构体中的pTop实际上就是链表最顶部元素本身,不要以为是pTop->pNext,想象成箱子里的顶部和底部即可,不是箱子外指向里面,老师讲课的过程中这块容易误会先放笔记,再放练习代码线性结构常见2种应用之一 栈栈,静态变量是由操作系统在栈中分配内存压栈和出栈的方式分配内存堆,malloc是由程序.原创 2021-01-11 16:53:27 · 204 阅读 · 0 评论 -
郝斌数据结构学习笔记(3)链表与练习代码
学习了链式存储结构链表,郝斌数据结构P13-P30重点内容:非循环单链表的创建(pTail = pHead设计分离很有意思),链表遍历(与数组遍历可对应看),链表插入删除(与数组插入删除可对应看,算法更有意思),选择排序算法((n-1)*n)[不稳定,冒泡算法更稳定]先放笔记后放代码离散存储[链表]预备知识typedef struct Node{int data; //数据本身struct Node * pNext; //指向一个跟它数据结构一模一样..原创 2021-01-11 11:40:08 · 266 阅读 · 0 评论 -
郝斌数据结构学习笔记(2)连续存储[数组]练习代码
郝斌数据结构12/78,数据结构,连续存储[数组]的代码实现重点:结构体指针,指针与数组,冒泡算法,动态内存申请,对象方法的实现等#include<stdio.h>#include<malloc.h>#include<stdlib.h>struct Arr{ int * pBase;//存储的是数组第一个元素地址 int len;//数组所能容纳最大元素个数 int cnt;//当前数组有效元素个数};void init_arr(...原创 2021-01-09 20:40:47 · 136 阅读 · 0 评论 -
数据结构学习笔记(1)绪论&指针
21年1月7日出于面试准备,同时也是进一步提高自己编程技能,开始学习严蔚敏数据结构第二版至1月8日学完第一章并做完课后习题,第一章笔记如下数据结构严蔚敏1.2.1概念数据(Data):客观事物的符号表示。凡能输入计算机并被处理的的符号总称。如数学计算中用到的整数实属,文本编辑中用到的字符串,多媒体程序处理的图形、图像、声音及动画等通过特殊编码定义后的数据。数据元素(Data Element):数据的基本单位,在计算机中作为一个整体进行考虑和处理。也成为元素、记录等。数据元素用于完整描述原创 2021-01-09 08:02:16 · 350 阅读 · 0 评论