自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode 530.二叉搜索树的最小绝对差 、501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先

如果left为空,right不为空,就返回right,说明目标节点是通过right返回的,同样,如果right为空,left不为空,就返回left,说明目标节点是通过left返回的。在中序遍历过程中,当前节点值和前一个节点值不一致时,重新赋值为1同时,还要判断之前的节点值出现的次数是否是跟最大次数一样,是的话,就要添加到结果数组中,或者说,其出现的次数大于最大次数,那要重新记录,即清空数组,把该值重新添加到数组。输入:root = [1,0,48,null,null,12,49]

2024-05-28 12:57:48 704

原创 leetcode 654.最大二叉树 、617.合并二叉树 、700.二叉搜索树中的搜索 、98.验证二叉搜索树

可以以一棵树为基础如root1,当root1的左节点为空,root2的左节点不为空,那直接把root2的左节点z指向root1,当成root1的左节点不就行了。其实思想都是一样的,就是当root1的左节点为空,root2的左节点不为空,那直接把root2的左节点z指向root1,当成root1的左节点不就行了。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]

2024-05-28 11:21:48 747

原创 leecode 226 翻转二叉树、101 对称二叉树、104 二叉树的最大深度

那我们可以用前序遍历一路遍历下去,遍历到下一层,深度加一,不过要注意的是,在返回去的时候,深度要相应的减一,此时就涉及到回溯了。这道题来说,前序和后序基本都可以,如果是中序的话,某些节点可能要交换两次,因为中序遍历逻辑是左中右,在中进行交换,然后再遍历到右节点,这不是相当于把原来交换的再次交换了吗。从示例中可以看到,左子树的左节点的值要等于右子树的右节点的值,左子树的右节点的值要等于右字数的左节点的值。这道题我们要清楚,要比较的不是左右节点,而是根节点的左右两棵树,所以在遍历的过程中,两棵树要同时遍历。

2024-05-26 23:32:23 454

原创 leecode 637 二叉树的层平均值

二叉树的层序遍历一般来说,我们是利用队列来实现的,先把根节点入队,然后在出队后将其对应的子节点入队,然后往复此种操作。给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。(即逐层地,从左到右访问所有节点)。输入:root = [3,9,20,null,null,15,7]输入:root = [3,9,20,null,null,15,7]输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]

2024-05-26 22:27:07 492

原创 二叉树递归遍历、迭代遍历、统一迭代

二叉树的迭代遍历可以借助栈来实现,以前序遍历为例,逻辑是中左右,那进栈顺序为中右左,到时候弹出来的不就是中左右吗。2.确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。1.首先确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。

2024-05-21 12:52:11 150

原创 leetcode 239. 滑动窗口最大值、347.前 K 个高频元素

优先级队列每次出队的元素是队列中优先级最高的那个元素,而不是队首的元素。给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。单调队列:队列元素之间的关系具有单调性(从队首到队尾单调递增/递减),队首和队尾都可以进行入队出队(即插入删除)操作,本质是由双端队列deque实现。这道题是优先队列的应用。这道题是单调队列的应用,本来试着直接解出来,但是一直有bug,然后看了题解后发现是单调队列的应用。输入:nums = [1,3,-1,-3,5,3,6,7], k = 3。

2024-05-21 12:29:03 790

原创 leetcode 20.有效的括号、1047.删除字符串中的所有相邻重复项、150.逆波兰表达式值。

首先我们要知道,如果匹配的话,那当我们把’('、‘{’、‘['入栈后,当遍历到)、}、]时,从栈取出来的一定是对应的那个。tokens[i] 是一个算符(“+”、“-”、“*” 或 “/”),或是在范围 [-200, 200] 内的一个整数。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。输入:tokens = [“10”,“6”,“9”,“3”,“+”,“-11”,“输入:tokens = [“2”,“1”,“+”,“3”,“*”]

2024-05-20 16:09:47 713

原创 leetcode 232.用栈实现队列、225. 用队列实现栈

要用队列来实现栈,其实不用两个队列,就算用两个第一列,另一个队列相当于是备份的,可以用一个队列实现就行了。要用栈来实现队列的功能,那要用到两个栈,一个作为输入栈,一个作为输出栈。即当元素入队时,直接压入输入栈中,出队时,因为栈是后进先出,所以先把输入栈的数据压入输出栈中,这样再出栈即为队列出队的队头元素,同样,返回队头元素也是这样。而判断是否为空时,则要两个栈都要为空,队列才为空。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。

2024-05-17 10:57:40 822

原创 leetcode 28. 找出字符串中第一个匹配项的下标

从前往后遍历haystack,如果有出现与needle的第一位相等的话,则记录此时的位置k,然后去判断后面是是否还是相等,如果遍历完needle,则是 haystack 的一部分,否则,再开始下一轮的重新匹配。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。解释:“leeto” 没有在 “leetcode” 中出现,所以返回 -1。解释:“sad” 在下标 0 和 6 处匹配。

2024-05-16 22:50:57 237

原创 leetcode 344.反转字符串、541. 反转字符串II、151.翻转字符串里的单词、卡码网:54.替换数字、卡码网:55.右旋转字符串

要审题,i是每次走2k步,然后翻转的是前k个字符,那也就是说起码位置确定了,i走完2k步之后的位置确定了,要翻转的范围也就确定了。这道题是多种操作的结合,包括了字符串的去空格,翻转,字符串内部单词的翻转。这里我给出两种解法,但其实是一样的,就是看代码怎么写。给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。

2024-05-16 22:41:08 739

原创 leetcode 454.四数相加II 、383. 赎金信 、15. 三数之和 、18. 四数之和

这道题是哈希表的应用,只不过是给了四个数组,其实我们可以先用一个哈希表记录两个数组之间任意组合的和,并把同个和存在哈希表的value值中,然后去遍历另外两个数组,然后差值是否存在哈希表的key中,若存在,则满足题目的要求的数量加上这个key对应的value值,其实就是leetcode第一题用哈希表的思想差不多。输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输入:nums = [2,2,2,2,2], target = 8。

2024-05-15 22:49:34 515

原创 leetcode 242.有效的字母异位词 、349. 两个数组的交集 、202. 快乐数、1. 两数之和 。

然后这道题还有一个点就是对一个数字的个位数操作,这个数字对10取余,即n % 10,相当于取个位数,然后对n = n / 10,即去掉个位数,再次对10取余,反复上述的操作。可以在纸上推导一下。这道理是求两个数组的交集,那我们直接用哈希表去将一个数组的值作为哈希表的键,然后去遍历另一个数组,如果遍历到的值在哈希表的键中,那不就是相交的值吗,因为可能一个值在数组中多次存在,所以我们可以用set去保存相交的值,最后再转化为数组。输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]

2024-05-13 17:43:52 766

原创 leetcode 24. 两两交换链表中的节点 、19.删除链表的倒数第N个节点 、面试题 02.07. 链表相交 、142.环形链表II

然后cur的下一个节点q指向起始节点cur,这时候两个节点已经交换了,然后前缀节点指向cur节点,因为前面已经交换完,即cur的未知是原来cur的下一个节点的未知,然后起始节点变为下一个起始节点t。这道题依然是快慢指针的应用,跟链表有环是同样的思路,只不过这次是找环的起点,这里我是画图然后找到规律,就是先让快慢指针先走(快指针每次走两步,慢指针每次走一步,然后走到相等的位置,慢指针重新指向头节点,此时快指针和慢指针同时出发,各走一步,当两个指针走到同一位置时,即为环的起点。如果链表无环,则返回 null。

2024-05-12 23:52:52 809

原创 leetcode 203.移除链表元素 、 707.设计链表 、206.反转链表

对于链表的增删,一般是使用双指针来实现,即利用两个指针,pre,cur,pre是cur指针的前缀结点,两个指针同时遍历链表,当遍历到等于val时,此时cur指针指向的就是值等于val的节点,也是题目要求删除的节点。则可以利用pre指针(因为pre指针的cur指针的前缀节点)指向cur指向的下一个节点,即删除了当前cur指向的节点。给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。假设链表中的所有节点下标从 0 开始。

2024-05-10 14:46:39 1743

原创 leetcode ** 977.有序数组的平方 、 209.长度最小的子数组 、59.螺旋矩阵II**

注意上面代码是在对sum相加后,右边窗口直接向右移动了以为,在进入收缩窗口的条件循环时,此时right指向的是下一位数字,如[2,3,1,2,4,3],当窗口数字为[2,3,1,2],此时right指向的是数组的第五位(即小标为4)4,此时right = 4,left = 0,则长度为right - left = 4 - 0 = 4。这就是我们怎么去移动窗口,窗口的移动,有右边窗口的移动,和左边窗口的移动,一般来说,右边窗口的移动就是往窗口添加数据,而左边窗口的移动就是在满足条件的时候,不断收缩窗口。

2024-05-09 22:58:34 1455 1

原创 leetcode 704. 二分查找、 27. 移除元素。

一般来说,有两种写法,分别是[left,right]左闭右闭的原则,这时右边界的可以取到的,所以终止判断条件为lefe <= right。初始化i和j指针为0,i指针记录当前指向非val值的位置,j指针遍历数组,当j指针的值nums[j]不等于val,则将num[j]赋值给nums[i] 并且i++,j++,而nums[j]等于val,则跳过,即j++,这样,当便利完这个nums数组后,i指针所走过的路程即为数组中非val的长度。双指针分别开始的位置,和判断的条件以及长度的计算。

2024-05-08 17:10:24 361

原创 服务器部署diffusion大模型并生成图片

通过GitHubhttps://github.com/huggingface/diffusers下载源码,上传服务器,打开终端,激活相关anaconda环境或者新建一个虚拟环境,进入diffusers根目录,终端输入。可以选择在图片生成过程中在线下载大模型,不过一般需要设置令牌,我选择的是下载对应的大模型部署到服务器,然后本地调用。如果不想翻墙或者设置hugging face网站的token的话,可以选择本地安装相关库和依赖。本次我们以生成赛博猫咪为主题的图片,以下的正面词和负面词。正面词prompt1。

2023-10-20 18:07:38 429 1

原创 深度学习入门之cuda环境配置(3步解决)

3步解决深度学习入门之环境配置,减少烦恼!

2023-01-10 13:43:49 483 1

原创 SSM整合开发demo

SSM整合开发demo一、前期准备1.导入相关jar包2.创建source folder源文件config,并创建db.properties、spring配置文件applicationContext.xml、以及mybatis配置文件mybatis-config.xml、springmvc的配置文件springmvc-config.xml# db.properties文件配置jdbc.driver=com.mysql.cj.jdbc.Driver#jdbc.driver=com.microsof

2021-04-24 09:52:09 166

原创 SpringMvc与json交互以及restful风格

SpringMvc与json交互以及restful风格1.导入jar包2.在wen.xml中配置前端控制器等信息配置<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://

2021-04-24 00:36:02 140

原创 springmvc项目入门通用步骤

springmvc项目入门通用步骤此处是单纯的springmvc,并没有涉及与数据库打交道和mybatis1.导入jar包2.在web.xml中配置springmvc的前端控制器<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" x

2021-04-23 12:49:14 114

原创 ssm整合开发

前言好久没有用过ssm了,有点陌生,最近回顾以下,文章的所有资源都来自《Java EE 企业级应用开发教程》这本书一、环境搭建准备1.导入相应的jar包2.编写配置文件src根目录下创建db.properties文件、spring的配置文件以及mybatis的配置文件​ db.properties# db.properties文件配置jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://:3306/bybaitis?

2021-04-20 00:03:19 129

原创 todolist待做日志

todolist介绍一个用于记录和管理今天待做事项,可以监督和管理自己的当天时间安排,也可以统计今天已做和还未做的事项。根据一个教学视频而进行练手的一个小demogitee地址:https://gitee.com/jh1210/todolist我也部署在服务器上,可以根据这个地址访问:http://www.iphome.top:8848/todolist/todolist.html技术栈主要使用Vue进行开发说明#####1.运行项目后,即可看见项目主页#####2.可以在搜索栏输

2021-04-17 21:58:48 214

原创 git常见问题解决方法总结

git提交常见问题解决方法总结fatal: Could not read from remote repository大概意思是:不能从远程存储库读取。一般我们在使用git push -u origin master命令提交时候,如果我们配置好ssh相关的key的话,那可能会报这个错误。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CxeFuUeR-1618323662791)(C:\Users\home\AppData\Roaming\Typora\typora-u

2021-04-13 22:23:02 604 1

原创 express简单使用

express简单使用简易项目前提:通过express命令生成的项目可能对于刚接触的我不是很友好,于是仔细观察一下主文件app.js,发现和之前借助http模块搭建通信服务器差不多,于是刚开始我们可以简化一下express的使用首先先创建一个项目目录,然后选择终端打开,下载expresscnpm install express --save //下载express并保存创建app.js文件,并引入express模块let express = require('express');let ap

2021-02-23 00:09:39 247 2

原创 express安装与创建项目

express安装与创建项目1.介绍express基于 Node.js 平台,快速、开放、极简的 Web 开发框架更多介绍与详细请查看其官方网址:https://www.expressjs.com.cn/2.安装备注:使用npm进行安装,可以先安装淘宝镜像切换cnpm安装速度快一点。全局安装cnpm install express -g这样可以在电脑的其他位置也能访问到express,当然还需要安装生成器才行(通过应用生成器工具 express-generator 可以快速创建一个应用的骨

2021-02-22 23:52:40 259

原创 小程序使用vant--基础

小程序使用vant–基础1.安装首先创建好小程序项目后,使用npm初始化创建package.json文件,然后使用npm等安装vant初始化:npm init -ynpm 安装:npm i @vant/weapp -S --production2.小程序工具的设置在本地设置中勾选使用npm在工具上选择构建npm,待构建完成3.使用首先这些都是一些组件,要使用先要引入他们,为了方便,可以直接在app.json全局引入。如button组件app.json“usingComponent

2021-02-22 21:54:10 290

原创 力扣第141题---环形链表

leetcode刷题笔记力扣第141题—环形链表题目给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。链接:https://leetcode-cn.com/pr

2021-02-09 21:00:06 267

原创 node操作mysql

node操作mysql1.准备先安装mysql依赖npm install mysql --save如果觉得npm安装速度慢,可以切换淘宝镜像cnpm安装npm install -g cnpm --registry=https://registry.npm.taobao.org2.引入mysql模块let mysql = require("mysql")3.配置连接数据库的参数,构建连接对象 let connection = mysql.createConnection({ //主机

2021-02-09 20:39:22 1385 6

原创 力扣第455题---分发饼干

leetcode刷题笔记力扣第455题—分发饼干题目假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。来源:力扣(LeetCode)链接:https://leetcode-cn.co

2021-02-07 22:12:05 451 9

原创 node搭建通信服务器

node搭建通信服务器1.引入http模块let http = require("http");2.利用http模块创建服务器对象let server = http.createServer()3.对请求服务器对象的监听server.on('request',function(req,res){ //防止乱码 res.setHeader('Content-Type','text/html; charset=UTF-8'); //根据不同请求路径返回不同的响应内容 i

2021-02-07 16:28:27 313

原创 力扣122题---买股票的最佳时机||

leetcode刷题笔记力扣122题—买股票的最佳时机||题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。来源:力扣(LeetCode)示例示例1输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润

2021-01-25 23:16:06 163 1

原创 力扣169题---多数元素

leetcode刷题笔记力扣169题—多数元素题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/majority-element示例示例1输入: [3,2,3]输出:3示例2输入: [2,2,1,1,1,2,2]输出:2题意分析题解思路代码...

2021-01-24 22:11:03 385 3

原创 力扣66题---加一

leetcode刷题笔记力扣66题—加一题目:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/plus-one示例示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits

2021-01-22 22:00:56 273

空空如也

空空如也

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

TA关注的人

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