自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RedisTemplate

redisTemplate模板

2022-08-11 09:09:21 121 1

原创 141.环形链表

题干: 给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。题解: 就是判断链表中是否有环。用快慢指针法,分别定义 fast 和 slow指针,slow从头指针head开始,fas

2022-07-21 13:54:11 165

原创 136.只出现一次的数字

要求不使用额外的空间,这时就要考虑位运算。用异或操作,因为相同的两个数异或结果是0,一个数和0异或的结果是这个数本身。将数组里的元素全都异或一下,最后的结果就是只出现一次的数字。给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?...

2022-07-21 11:15:34 94

原创 121.买卖股票的最佳时机

题干: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。题解: 直接暴力求解会超时,所以用动态规划,前i天的最大收益 = max{前i-1天的最大收益,第i天的价格-前i-1天中的最小价格}...

2022-07-21 10:55:49 107

原创 104.二叉树的最大深度

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明叶子节点是指没有子节点的节点。给定一个二叉树,找出其最大深度。计算左子树和右子树的高度。

2022-07-19 17:18:53 89

原创 101.对称二叉树

递归,对称的话就是左子树的左子树等于右子树的右子树,左子树的右子树等于右子树的左子树。给你一个二叉树的根节点root,检查它是否轴对称。

2022-07-19 16:59:06 47

原创 94.二叉树的中序遍历

给定一个二叉树的根节点root,返回它的中序遍历。

2022-07-19 16:47:16 82

原创 70.爬楼梯

爬上n个台阶可以分为两种情况,假设最后一步爬1个台阶,那么就是有dp[n-1]种方案;假设最后一步爬2个台阶,那么就有dp[n-2]种方案。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?需要n阶你才能到达楼顶。...

2022-07-19 16:31:24 84

原创 53.最大子数组和

如果sum是负数了,那么后面加再大的值也只会使和变小。假如sum=-3,后面的数是9,加起来等于6,这样还不如直接从9开始加大。给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。...

2022-07-19 10:49:16 172

原创 21.合并两个有序链表

题干: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。题解: 新建一个带头结点的链表,然后设置一个指针指向头结点,这个指针一点一点向后移动添加数据。...

2022-07-19 10:29:19 197

原创 20.有效的括号

如果和栈顶元素匹配,则弹出栈顶元素;如果不匹配则压入栈。最后如果栈空了就表明都匹配。需要注意的细节是在查看栈顶元素之前要判断栈是否为空,如果栈空了就直接把当前元素压入栈,还要判断栈顶元素是不是右括号,如果是右括号则直接返回false。给定一个只包括‘(’,‘)’,‘{’,‘}’,‘[’,‘]’的字符串s,判断字符串是否有效。左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。...

2022-07-19 10:00:38 92

原创 1.两数之和

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。两层循环,找到符合条件的解直接返回。你可以按任意顺序返回答案。...

2022-07-19 08:57:53 86

原创 28.对称的二叉树

题干: 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。题解: 判断root1的左节点和root2的右节点、root1的右节点和root2的左节点是不是相等/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x)

2022-04-22 16:45:11 395

原创 27.二叉树的镜像

**题干:**请完成一个函数,输入一个二叉树,该函数输出它的镜像。题解: 递归交换左右节点,先暂存左节点,因为递归之后左节点就变了/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solutio

2022-04-22 16:15:37 1416

原创 25.合并两个排序的链表

题干: 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。题解: 先设置一个新链表的头节点,然后依次判断l1和l2链表中值的大小,如果有一个链表为空就跳出循环,然后把没空的那一个链表加到新链表的后面/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; }

2022-04-22 15:54:30 258

原创 24.反转链表(要多看看)

题干: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。题解: 定义一个pre指针/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseList

2022-04-21 16:45:14 213

原创 22.链表中倒数第k个节点

题干: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。题解: 先计算链表中一共有多少个节点,然后计算倒数第k个节点是从头到尾数的第几个节点,然后将该节点变成head节点/** * Definition for singly-linked list. * public class ListNode {

2022-04-21 15:23:38 208

原创 21.调整数组顺序使奇数位于偶数前面

题干: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。题解: 用了比较笨的方法,用数组分别存奇数和偶数,然后整合到一个数组里class Solution { public int[] exchange(int[] nums) { int len = nums.length; int[] num1 = new int[len]; int[] num2 = new int[len];

2022-04-20 21:38:16 226

原创 18.删除链表的节点

题干: 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。题解: 首先判断一下头结点是不是要删除的节点,如果是就将链表的头结点设置为下一个节点。然后判断p.next是不是要删除的节点。这里不能直接判断p节点是因为这不是双向链表,如果要删除p节点,就要将p节点的前一个节点的next指针指向p.next,这里不能得到p的前一个指针,所以不能直接判断p。/** * Definition for singly-linked list. * public class

2022-04-20 16:59:10 452

原创 17.打印从1到最大的n位数

题干: 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。题解: 给定位数n,那么最大的n位数就是10^n-1,用 Math.pow(a,b)求a的b次方class Solution { public int[] printNumbers(int n) { int len = (int)Math.pow(10,n); int[] result = new int[len-1];//注意数

2022-04-18 19:01:48 172

原创 15.二进制中1的个数

题干: 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。题解: 如果像十进制那样循环(cnt = n%2, n/=2),当n为负数的时候就会报错。这里可以用到与运算,n&1=1就说明最后一位是1,如果n&1=0就说明最后一位是0,判断完最后一位然后进行右移,需要注意的是有符号的右移是>>,无符号的右移是>>>public class Solution { // you

2022-04-18 17:48:56 92

原创 11.旋转数组的最小数字

题干: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为 1。注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。题解: 没看懂题目,用

2022-04-18 16:56:48 97

原创 10.2.青蛙跳台问题

题干: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。题解: 这个和斐波那契数列那道题一样,都是用动态规划做。假设要跳i个台阶,最后一次如果跳2级台阶,那么就和前面跳i-2级台阶是一样的;最后一次如果跳1级台阶,那么就和前i-1级台阶的情况是一样的。最后把这两种情况相加就是总共的跳法。这里要注意的是dp[0]=1class Solution {

2022-04-18 16:30:23 622

原创 10.1.斐波那契数列

题干:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。题解: 直接递归会超时,这里用动态规划做class Solution {

2022-04-18 14:40:23 546

原创 09.用两个栈实现队列

题干:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )题解:先定义两个栈作为成员变量,第一个栈sin用来入队,第二个栈sout用来出队。加入成员就直接push进sin,删除的话就要先把sin栈中的元素存到sout栈中,sin就相当于把sout翻转了,然后peek查找栈顶元素,记录下来并删除。接下来再把sout中的元素放回到sin里,就

2022-04-17 20:56:14 66

原创 06.从尾到头打印链表

题干:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。题解:定义一个ArrayList数组存链表中的结点值class Solution { public int[] reversePrint(ListNode head) { ArrayList<Integer> arr = new ArrayList<Integer>(); for(ListNode p=head; p!=null; p=p.next){

2022-04-17 19:44:30 290

原创 05.替换空格

先利用一个char数组去存每个字符,最后将char数组变成String返回,这里要注意的是Strings=newString(c,0,size)的用法。请实现一个函数,把字符串s中的每个空格替换成"%20"。

2022-03-03 10:33:37 57

原创 Java笔记

JDK:Java Development Kit(Java开发者工具)JRE:Java Runtime Environment(Java运行时环境)JVM:Java Virtual Machine(Java虚拟机)文件名和类名必须保证一致Hello.java 和 public class Hello运行的时候javac Hello.java然后生成class文件然后 java Hello...

2022-02-28 14:48:38 311

原创 Latex报错:Missing $ inserted

Latex报错 Missing $ inserted:因为文中出现了下划线"_",需要在下划线前面加上转义符"\"

2021-12-16 16:45:57 969 1

原创 Dos命令

1. 盘符切换2.查看当前目录下的所有文件 dir3. 切换目录 cd跨盘符切换:返回上一级:进入下一级:4. 清理屏幕 cls5. 退出终端 exit6. 查看电脑的ip ipconfig7. 打开应用calc 打开计算器mspaint 打开画图notepad 打开记事本8. ping命令9. 文件操作创建文件夹 md 目录名:新建文件 cd> 文件名:删除文件 del 文件名:移除文件夹 rd 目录名:...

2021-12-10 19:33:19 46

原创 Latex 插入多张图片

插入一张图片\begin{figure*}[htbp]#[figure*]是指跨双栏插入,在双栏直接插入用[figure] \centering \includegraphics[scale=0.6]{fig1.pdf} \caption{fig caption} \label{fig1}\end{figure*} 并列插入多张图片\begin{figure}[htbp] \centering \subfloat[fig1 caption]{\label{fi

2021-10-14 17:54:22 1202 2

原创 win10/linux-python-gdal安装(踩坑)

win10版本错误示范:(最好不要尝试)先在anaconda下用conda install gdal用这条命令安装结束之后出现错误“ImportError DLL load failed 找不到指定的程序”,不能正常使用,然后进行卸载conda uninstall gdal正确方法:先在第三方库下载对应版本的gdal包这里我下载的是这个版本记住保存的路径,然后去anaconda prompt下输入:pip install GDAl-2.4.1-cp37-cp37m-win_amd6

2021-05-07 17:30:36 1741 6

原创 pytorch 加载预训练模型

pytorch的torchvision中给出了很多经典的预训练模型,模型的参数和权重都是在ImageNet数据集上训练好的加载模型方法一:直接使用预训练模型中的参数import torchvision.models as modelsmodel = models.resnet18(pretrained = True) #pretrained设为True,表示使用在ImageNet上训练好的参数方法二:使用本地磁盘上的参数(直接下载的pth文件或者是在自己数据集上训练好的参数)import to

2021-03-16 11:23:22 1033 2

原创 pytorch transforms.Normalize中计算数据集的像素均值和标准差

借鉴了某大佬的博客博客地址我这里用的是NWPU-RESISC45数据集import numpy as npimport cv2import osimport torchimport torchvisionimg_h, img_w = 256, 256 # 根据自己数据集适当调整,影响不大means = [0, 0, 0]stdevs = [0, 0, 0]img_list = []imgs_path = 'E:/BaiduNetdiskDownload/NWPU-RESISC45

2021-03-08 11:03:46 943 5

原创 服务器环境配置(Anaconda+pytorch)

一、xshell和xftpxshell:名称:自己随便写协议:SSH主机:要连接的主机IP地址端口号:22xftp:名称:自己随便写协议:SFTP主机:要连接的主机IP地址端口号:22点击记住用户名和密码二、Anaconda下载wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.11-Linux-x86_64.sh这里下载Anaconda用的是清华镜像**小提示:**在xshell

2020-12-04 19:08:03 4763 3

原创 CIFAR-10分类(pytorch)

刚开始学深度学习,有什么写得不对的地方,请各位大佬批评指正import torchfrom torch.autograd import Variableimport torch.nn as nnimport torch.utils.data as Dataimport torchvisionimport matplotlib.pyplot as pltEPOCH = 50LR = 0.001BATCH_SIZE = 50DOWNLOAD_CIFAR = False #如果没下载数据集就

2020-07-22 13:37:39 311

原创 手写数字识别(pytorch)

import torchfrom torch.autograd import Variableimport torch.nn as nnimport torch.utils.data as Dataimport torchvisionimport matplotlib.pyplot as pltimport numpy as npEPOCH = 1BATCH_SIZE = 50LR = 0.001DOWNLOAD_MNIST = False #如果没下载数据集就设成Truetrai

2020-07-22 12:04:32 308

转载 pytorch cpu版本安装

win10+python3.7+pytorch(CPU)在anaconda prompt下输入conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/conda install pytorch torchvision cpuonly从官网下载太慢了,所以这里用了清华源下载完之后用import torch测试一下就可以了...

2020-07-12 13:23:07 467

原创 03.数组中重复的数字

数组中重复的数字题干: 找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。解题思路: 重新定义一个数组cnt,用来记录nums数组中各数字出现的次数。举个例子,nums[0]=2此时cnt[nums[0]]=cnt[2]=1,也就是说数字2出现了1次,如果遍历的时候再遇到数字2出现,而cnt[2]不等于0,则说明2之前已经出现过了,直接返回即可。因

2020-05-17 13:52:35 215

空空如也

空空如也

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

TA关注的人

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