- 博客(29)
- 收藏
- 关注
原创 53.最大子数组和
如果sum是负数了,那么后面加再大的值也只会使和变小。假如sum=-3,后面的数是9,加起来等于6,这样还不如直接从9开始加大。给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。...
2022-07-19 10:49:16
203
原创 21.合并两个有序链表
题干: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。题解: 新建一个带头结点的链表,然后设置一个指针指向头结点,这个指针一点一点向后移动添加数据。...
2022-07-19 10:29:19
281
原创 20.有效的括号
如果和栈顶元素匹配,则弹出栈顶元素;如果不匹配则压入栈。最后如果栈空了就表明都匹配。需要注意的细节是在查看栈顶元素之前要判断栈是否为空,如果栈空了就直接把当前元素压入栈,还要判断栈顶元素是不是右括号,如果是右括号则直接返回false。给定一个只包括‘(’,‘)’,‘{’,‘}’,‘[’,‘]’的字符串s,判断字符串是否有效。左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。...
2022-07-19 10:00:38
169
原创 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
1501
原创 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
324
原创 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
253
原创 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
244
原创 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
270
原创 18.删除链表的节点
题干: 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。题解: 首先判断一下头结点是不是要删除的节点,如果是就将链表的头结点设置为下一个节点。然后判断p.next是不是要删除的节点。这里不能直接判断p节点是因为这不是双向链表,如果要删除p节点,就要将p节点的前一个节点的next指针指向p.next,这里不能得到p的前一个指针,所以不能直接判断p。/** * Definition for singly-linked list. * public class
2022-04-20 16:59:10
514
原创 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
201
原创 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
141
原创 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
127
原创 09.用两个栈实现队列
题干:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )题解:先定义两个栈作为成员变量,第一个栈sin用来入队,第二个栈sout用来出队。加入成员就直接push进sin,删除的话就要先把sin栈中的元素存到sout栈中,sin就相当于把sout翻转了,然后peek查找栈顶元素,记录下来并删除。接下来再把sout中的元素放回到sin里,就
2022-04-17 20:56:14
90
原创 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
316
原创 05.替换空格
先利用一个char数组去存每个字符,最后将char数组变成String返回,这里要注意的是Strings=newString(c,0,size)的用法。请实现一个函数,把字符串s中的每个空格替换成"%20"。
2022-03-03 10:33:37
86
原创 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
345
原创 Latex报错:Missing $ inserted
Latex报错 Missing $ inserted:因为文中出现了下划线"_",需要在下划线前面加上转义符"\"
2021-12-16 16:45:57
1239
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
90
原创 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
1415
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
2550
8
原创 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
1223
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
1077
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
4997
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
360
原创 手写数字识别(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
368
转载 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
549
原创 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
282
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人