自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 动态规划入门-01(兑换钱币&&跳跃游戏)-js

1.兑换零钱(一)描述给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。如果无解,请返回-1.示例1输入:[5,2,3],20返回值:4代码实现:function minMoney( arr , aim ) { // write code here /* 动态规划的解题步骤: 1。确定状态

2021-12-09 20:47:03 452 1

原创 链表内指定区间反转&&划分链表-

1.链表内指定区间反转 - js描述将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n)O(n),空间复杂度 O(1)O(1)。例如:给出的链表为 1→2→3→4→5→NULL, m=2,n=4m=2,n=4,返回 1→4→3→2→5→NULL.示例1输入:{1,2,3,4,5},2,4返回值:{1,4,3,2,5}思路:链表的题思路简单编码麻烦,老是在弥缝子1.根据题目给定的区间将链表切割成三段,并且将区间内的一段反转之后再次链接即可代码实

2021-12-08 20:41:03 664

原创 二叉树中和为某一值的路径(二) - js

二叉树中和为某一值的路径(二) - JS描述输入一颗二叉树的根节点root和一个整数expectNumber,找出二叉树中结点值的和为expectNumber的所有路径。1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是指没有子节点的节点3.路径只能从父节点到子节点,不能从子节点到父节点4.总节点数目为n输入:{10,5,12,4,7},22返回值:[[10,5,7],[10,12]]说明:返回[[10,12],[10,5,7]]也是对的 思路:1.两

2021-11-20 22:16:39 300

原创 大数加法 && 重排链表 && 二叉树根节点到叶子节点的所有路径和 -js

01 - 大数加法描述以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。示例1输入:"1","99"返回值:"100"说明:1+99=100 思路:将两个字符串反转,补位。得到相同长度的字符串后,进行加和即可1.找出最长的字符串,用最长的字符串的长度减去最短的字符串的长度得到最短的字符串需要补位的个数。2.遍历两个字符串进行加和操作即可代码实现:function solve( s , t ) { // write code here // 将

2021-11-18 22:45:55 568

原创 将升序数组转化成平衡二叉搜索树&&二叉树中和为某一值的路径&&二叉树的最大深度

01-二叉树的最大深度描述求给定二叉树的最大深度,深度是指树的根节点到任一叶子节点路径上节点的数量。最大深度是所有叶子节点的深度的最大值。示例2输入:{1,2,3,4,#,#,5}返回值:3递归思路:1.如果树为空,就返回02.递归左子树得到左子树的深度3.递归右子树的到右子树的深度4.取左子树和右子树的最大值再将根节点算上,所以最大值+1代码实现:function maxDepth( root ) { // write code here if(root =

2021-11-15 22:32:11 386

原创 进制转换&&合并二叉树

01 - 字符串压缩 - js描述利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2bc5a3。1.如果只有一个字符,1不用写2.字符串中只包含大小写英文字母(a至z)。示例1输入:"aabcccccaaa"返回值:"a2bc5a3"思路:1.两个指针slow和我fast,slow指向第一个重复字符的位置,fast向后遍历查找和slow指针指向位置字符相同的最后一个字符的位置。2.fast指针停下表示下一个字符和当前slow位置

2021-11-14 22:36:43 298

原创 反转链表&&判断一个链表时是否回文结构-js

01 - 反转链表 - js描述给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头。示例1输入:{1,2,3}返回值:{3,2,1}思路:1.辅助数组:将链表中的数据全部遍历保存到一个新的数组中去,然后在数组中操作数据反转,最后可以创建一个新的链表插入数据,也可以直接遍历原来的链表修改节点的值。2.指针:用三个指针通过操作指针的方式完成操作。代码实现(指针):function ReverseList(pHead){ // write code h

2021-11-13 22:28:21 1059

原创 js - 用两个栈实现队列 && 二叉树的镜像 && 旋转数组的最小数字

01- 单链表的排序描述给定一个节点数为n的无序单链表,对其按升序排序。示例1输入:[1,3,2,4,5]返回值:{1,2,3,4,5}思路:辅助数组,将原链表中的数据取出来放在一个新数组中,然后对这个数组进行排序,排序之后再将数组中的有序数据按照顺序插入链表中。代码实现:function sortInList( head ) { // write code here if(head == null) return head let numArr = []

2021-11-12 10:09:31 1004

原创 判断是不是平衡二叉树 - js

01 - 两数之和 - js描述给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。示例1输入:[3,2,4],6返回值:[2,3]说明:因为 2+4=6 ,而 2的下标为2 , 4的下标为3 ,又因为 下标2 < 下标3 ,所以输出[2,3] 思路:双层循环找到两数之和等于目标值时,生序返回两个下标值(注意要跳过自身和自身的相加)代码实现:function twoSum( numbers ,

2021-11-10 22:51:27 1062

原创 04 - 找到搜索二叉树中两个错误的节点 - js

01- 求路径 - js描述一个机器人在m×n大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?思路:1.创建一个m * n的数组之后,首先将第一行和第一列的数据全部设置为1(因为从起点出发到达第一行第一列的任意位置都只需要向右走或者向下走,所以走这行和这列的路径只有一条)2.其他位置的则是由自己当前位置的上边和左边位置的路径之和,因为想到到达当前位置,可以从上边下来,也可以从左边过来。以此类推到表格中的终点即是

2021-11-09 22:49:04 394

原创 删除给出链表中的重复元素

01-删除给出链表中的重复元素 - js描述删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为1 -> 1 -> 2 ,返回1 -> 2;给出的链表为1 -> 1 -> 2 - > 3 -> 3,返回1 -> 2 -> 3;示例1输入:{1,1,2}返回值:{1,2}思路:从链表头部开时遍历,在遍历的过程中将当前节点的数据保存进一个新的数组中去,在向后遍历的同时判断当前节点的数据是否

2021-11-08 22:09:39 999 1

原创 JS- 连续子数组的最大和

JS- 连续子数组的最大和个人学习笔记题目 :输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。示例1 :输入:[1,-2,3,10,-4,7,2,-5]返回值:18说明:经分析可知,输入数组的子数组[3,10,-4,7,2]可以求得最大和为18 思路:1.声明一个数组数组dp来保存每遍历原数组中每一项的加和2.初始化dp[0] = arr[0]3.从数组arr的下标为1的位置开始遍历加和[1, -2, 3, 10, -

2021-11-07 22:48:16 824

原创 JS-合并两个有序的数组

JS-合并两个有序的数组个人学习笔记题目要求:给出一个整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组注意:1.保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n2.不要返回合并的数组,将数组 B 的数据合并到 A 里面就好了3. A 数组在[0,m-1]的范围也是有序的示例1:输入:[4,5,6],[1,2,3]返回值:[1,2,3,4,5,6]复制说明:A数

2021-11-07 22:28:24 1171 1

原创 C1认证任务2-计算机网络

C1认证任务2-计算机网络一.任务访问网址:http://temp.blog8090.com/提交手机号和姓名。2.使用浏览器工具查看提交的表单中的信息3.之前请求失败是因为请求的url中缺少服务器设置的口号参数4.使用抓包工具抓到之前提交请求的包之后设置对的口令再次请求,请求成功二、拓展使用子网掩码将一组C类IP地址(范围为192.168.99.0~192.168.99.255划分成四个子网。掌握IP组网技术,理解网络地址分类和一些常见概念 给出子网掩码及每个不同子网的最小和

2021-06-06 18:07:36 189

原创 C1任务认证01

C1认证任务01一、使用0和1绘图通过使用二进制编码理解图片在计算机底层的存储方式以及图片颜色的填充方式第一行使用二进制表示 图片的宽度第二行使用二进制表示 图片的高度第三行表示图片是用的填充颜色 因为这时使用黑白的方式填充图片的所以颜色的值是1二、字符集编码方式通过进制编辑器来理解不同字符在计算机底层的转换方式及存储方式首先在文本编辑器里面输入文字然后使用进制编辑器来修改文字对应的字节编码将之前输入的文字转换成大写的形式三、unicode编码转utf-8编码以“码”为例它对应

2021-06-06 16:32:15 115

原创 密码学与简易区块链的实现

密码学基本概念密码在我们的生活中有着重要的作用,那么密码究竟来自何方,为何会产生呢?密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。1.古典密码学1.1 替换法替换法很好理解,就是用固定的信息将原文替换成无法直接阅读的密文信息。例如将 b 替换成 w ,e 替换成p ,这样bee 单词就变换成了wpp,不知道替换规则的人就无法阅读出原文的含义。替换法有单表替换和多表替换两种形式。单表替换即只有一张原文密文对照表单,发送者和接收者用这张表单

2021-04-19 16:07:00 357

原创 Java的常用语法

java基础语法1.Java日期时间java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。Date(long millisec)Date对象创建以后,可以调用下面的方法。序号方法和描述1boolean after(Date date) 若当调用此方法的Date对象在指定日期之后

2021-03-06 11:06:47 166

原创 2021-02-09

Node.js基础知识,文件系统总结一、基础知识1.CommonJS规范ECMAScript标准的缺陷没有模块系统标准库较少没有标准接口缺乏管理系统模块化如果程序设计的规模达到了一定的程度,则必须对其进行规模化。规模化有很多种形式,但至少应该提供能够将代码分割为多个源文件的机制CommonJS的模块功能可以帮我们解决该解决的问题CommonJS规范CommonJS规范的提出,主要是为了弥补当前javascript没有模块化标准的缺陷CommonJS规范为JS指定了

2021-02-09 13:58:32 127

原创 Python中的高级变量

01. 列表1.1 列表的定义List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组专门用于存储 一串 信息列表用 [] 定义,数据 之间使用 , 分隔列表的索引从0开始索引 就是数据在 列表 中的位置编号,索引 又可以被称为 下标注意:从列表中取值时,如果 超出索引范围,程序会报错name_list = ["zhangsan", "lisi", "wangwu"]1.2 列表常用操作在 ipython3 中

2021-01-08 10:30:33 103

原创 Python 基本语法整理

Python 基础语法整理我们每学一门编程语言总是以一个简单的Hello World!程序开始学起,以此来初步了解的该编程语言的书写格式。所以学习Python这门被称为未来的编程语言,我们还是以Hello World!来开始python的从从入门到放弃之旅,当然在正式学习python这门编程语言之前我们需要了解python的历史、特点以及编译环境。在linux操作系统下我们可以在终端窗口直接输入ipython3即可进行我们的python编程之路。如果没有安装ipython3的可以在终端中输入以下命令安装

2020-12-31 17:28:17 386

原创 2020-12-14

C语言 打印实心矩形,空心矩形,三角形,空菱形以及回形第一次的代码及运行截图#include <stdio.h>void shiJu(){ int i; int j; for(i=0;i<10;i++){ for(j=0;j<10;j++){ printf("* "); } printf("\n"); }}void konJu (){ int i; int j; for(i=0;i<10;i+

2020-12-14 22:58:49 87

原创 关于git本地命令的使用

Git简介1产生的历史git是目前世界上最先进的分布式版本控制系统。linus 在1991年创建了开源的linux,从此,linux不断地发展,已经成为世界上最大的服务器系统软件。在2002年以前,全世界的志愿者把代码以diff的方式推给linus,然后由linus本人通过手工的方式进行合并。最后BitKeeper的东家出于人道主义,授权linux社区免费试用这个版本控制系统,后来因为某些原因,BitKeeper又收回了使用权。之后linus又花了两周的时间试用C语言写了一个分布式控制系统,这就是Gi

2020-12-07 19:28:49 156

原创 Linux的发展历史及版本简介

Linux发展历史及常用版本介绍由于最近一段时间的学习要基于Linux操作系统。之前在各个版本的Linux之间看的眼花缭乱,那么经过自己查阅和总结之后,对Linux的发展历史和现在目前比较流行的Linux版本的特点有了一些大致的了解,在这里简单整理一下。首先简单了解一下Linux的发展历史1965年,贝尔(Bell)实验室、MIT、GE(通用电气公司)准备开发multics系统,为了同时支持300个以上的终端机连线使用,后来因计划进度落后,资金短缺,宣告失败;multics(英文全称:MULTipl

2020-11-30 15:27:10 4078 1

空空如也

空空如也

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

TA关注的人

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