自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决:RuntimeError: CUDA out of memory.

利用pytorchGPU训练深度模型时出现RuntimeError:CUDA out of memory问题解决方案

2023-07-22 20:14:56 2581

原创 Window11利用Acaconda安装Tensorflow(CPU版)

利用Acaconda安装Tensorflow(CPU版)

2022-07-10 23:03:13 2021

原创 MYSQL无法启动

MYSQL无法启动问题描述思路1.添加环境变量2.在MySQL安装路径下配置my.init文件(内容可自行修改)[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[mysqld]#设置3306端口port = 3306# 设置mysql的安装目录basedir=C:\Program Files\mysql-5.7.13-winx64# 设置mysql数据库的数据的存放目录datadir=C:\Program

2022-05-03 16:04:07 339

原创 二叉树的直径(Java)

二叉树的直径(牛客网—牛客题霸算法篇—NC)题目描述给定一颗二叉树,求二叉树的直径。1.该题的直径定义为:树上任意两个节点路径长度的最大值2.该题路径长度定义为:不需要从根节点开始,也不需要在叶子节点结束,也不需要必须从父节点到子节点,一个节点到底另外一个节点走的边的数目3.这个路径可能穿过根节点,也可能不穿过4.树为空时,返回 0思路Java实现这题可以看作是求二叉树深度的变形。定义一个全局变量res,用于存储当前的最大直径。使用递归以此计算左右子树的深度,将深度之和与res比较,

2021-12-01 22:46:01 1079

原创 将数组中的0移到数组最后且其他数字顺序不变(Java)

将数组中的0移到数组最后且其他数字顺序不变(牛客网—牛客题霸算法篇—NC200)题目描述给定一个数组,实现将所有 0 移动到数组末尾并且不改变其他数字的相对顺序。思路Java实现用两个指针i和j,用i寻找0,用j寻找非0数字。当找到非零数字后,将0和非零数字调换,并且让 i++要注意判断循环结束的条件,当j等于数组长度时,说明从i往后的位置上没有非零数字了,这个时候姐可以结束循环了。代码实现import java.util.*;public class Solution {

2021-12-01 21:04:57 1958

原创 二分查找(Java)

二分查找(牛客网—牛客题霸算法篇—NC160)题目描述给定一个元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1思路Java实现首先判断数组是否为空,为空直接返回-1定义left和right,最初分别指向数组的两端min=(left+right)/2比较nums[min]与target的值如果相等,返回min;如果nums[min]<target,令le

2021-12-01 20:47:32 339

原创 二叉树的后序遍历(Java)

二叉树的后序遍历(牛客网—牛客题霸算法篇—NC192)题目描述给定一个二叉树,返回他的后序遍历的序列。后序遍历是值按照 左节点->右节点->根节点 的顺序的遍历。代码实现import java.util.*;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.

2021-12-01 20:33:59 891

原创 二叉树的前序遍历(Java)

二叉树的前序遍历(牛客网—牛客题霸算法篇—NC193)题目描述给定一个二叉树的根节点 root ,返回它节点值的前序遍历。代码实现import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * }

2021-12-01 20:27:33 1120

原创 在字符串中寻找长度为k且包含重复字符的子串(Java)

在字符串中寻找长度为k且包含重复字符的子串(牛客网—牛客题霸算法篇—NC179)题目描述给一个由小写字母组成的长度为n的字符串 s ,找出所有长度为 k 且包含重复字符的子串,返回全部满足要求的子串的数目。思路Java实现通过三层循环实现:最外层循环用于确定每个子串的开头位置,从i位置取k个字符。第二层和最内层循环用于比较所截取子串中是否含有重复的字符串。当出现重复的字符串时,令flag=true(flag用于标识是否有重复的字符)flag用于验证是否含有重复的字符,若含有则跳出循环,否

2021-11-30 20:07:10 1303

原创 整数反转(Java)

整数反转(牛客网—牛客题霸算法篇—NC175)题目描述给定一个32位的有符号整数num,将num中的数字部分反转,最后返回反转的结果.要求1.只反转数字部分,符号位部分不反转2.反转后整数num超过 32 位的有符号整数的范围 [−231, 231 − 1] ,返回 03.不允许存储 64 位整数(有符号或无符号,即C++不能使用long long ,Java不能使用long等)思路Java实现将num转化成字符串,使用Sting.valueOf(int x)方法之后定义一个Stri

2021-11-30 19:04:20 838

原创 统计字符串中相同字符出现的个数(Java)

统计字符串中相同字符出现的个数(牛客网—牛客题霸算法篇—NC101)题目描述利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2bc5a3。要求:1.如果只有一个字符,1不用写2.字符串中只包含大小写英文字母(a至z)。思路Java实现简单的遍历要注意最后一组的情况!!!代码实现import java.util.*;public class Solution { /** * 代码中的类名、方法名、参数名

2021-11-29 21:17:29 3309

原创 用最少的步数从1跳到n(Java)

用最少的步数从1跳到n(牛客网—牛客题霸算法篇—NC148)题目描述给定一个长度为 n 的数组 a。ai 表示从 i 这个位置开始最多能往后跳多少格。求从 1 开始最少需要跳几次就能到达第 n 个格子。思路Java实现动态规划+贪心算法dp[i]=dp[i-x]+1,其中x为当前能跳的格子个数从前向后进行贪心首先计算当前最远可到达位置(记为cur),如果当前位置i已经在上一个最远可到达位置(pre),说明下一步一定能够到达cur,此时steps加一,同时跟新pre的值。代码实现动态

2021-11-29 20:21:42 711

原创 01背包问题(Java)

01背包问题(牛客网—牛客题霸算法篇—NC145)题目描述已知一个背包最多能容纳体积之和为v的物品现有 n 个物品,第 i 个物品的体积为 vi , 重量为 wi求当前背包最多能装多大重量的物品?思路Java实现动态规划。定义weight[j]表示体积为j时,背包能装的最大重量。如果没有把这第i个物品装入背包,那么很显然,最大价值weight[j]不变。如果把这第i个物品装入了背包,那么应该将当前weight[j]的值与装入第i个物品的重量进行比较,取较大值。代码实现import

2021-11-29 18:20:51 705

原创 旋转字符串(Java)

旋转字符串(牛客网—牛客题霸算法篇—NC114)题目描述字符串旋转:给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(可以为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。例如:如果A=‘youzan’,B=‘zanyou’,A按‘you’‘zan’切割换位后得到‘zanyou’和B相同,返回true。再如:如果A=‘abcd’,B=‘abcd’,A切成‘abcd’和’’(空串),换位后可以得到B,返回true。思路Java实现从

2021-11-29 16:59:44 803

原创 判断字符串中是否有重复的字符(Java)

判断字符串中是否有重复的字符(牛客网—牛客题霸算法篇—NC229)题目描述给定一个字符串,请你判断其中每个字符是否全都不同。思路Java实现使用Java自带的mapJava map的详解代码实现import java.util.*;public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * @param str string字符串 * @return bool布尔型

2021-11-28 23:08:49 2087

原创 判断t2树是否为t1树的子树(Java)

判断t2树是否为t1树的子树(牛客网—牛客题霸算法篇—NC98)题目描述给定彼此独立的两棵二叉树,树上的节点值两两不同,判断 t1 树是否有与 t2 树完全相同的子树。思路Java实现递归要判断t2是否为t1的子树,那么就先在t1中找到t2的根节点,然后再进行遍历。判断从当前节点的左右子树相不相同,如果一旦出现不同,那么立即返回false。如果t2遍历完节点,t1也遍历完节点,则证明t2为t1的子树。如果t1先遍历完节点,t2还没遍历完节点,那么则证明t2不是t1的子树。在isCont

2021-11-28 22:59:08 377

原创 统计二进制数中1的个数(Java)

统计二进制数中1的个数(牛客网—牛客题霸算法篇—NC120)题目描述输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。数据范围:−2147483648<=n<=2147483647思路Java实现先判断数据n的正负,如果是负数的话,令n=-n,然后将n转化成二进制数,再遍历统计1的个数。需要注意的当n=−2147483648时,转化成正数时会出现越界的情况,要把−2147483648单独处理。代码实现public class Solution {

2021-11-28 20:30:11 466

原创 合并二叉树(Java)

合并二叉树(牛客网—牛客题霸算法篇—NC117)题目描述已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。例如思路Java实现递归代码实现import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */public

2021-11-28 19:00:15 559

原创 删除有序链表中重复的元素(Java)

删除有序链表中重复的元素(牛客网—牛客题霸算法篇—NC25)题目描述删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为1→1→2,返回1→2.给出的链表为1→1→2→3→3,返回1→2→3.思路Java实现由于链表是有序的,因此我们可以定义两个指针,分别为node和nextnode,分别指向前后两个节点。当两个节点的值相等时,删除后一个节点。要注意判断链表越界的情况!!代码实现import java.util.*;/* * pu

2021-11-27 23:16:23 1670

原创 包含min函数的栈(Java)

包含min函数的栈(牛客网—牛客题霸算法篇—NC90)题目描述定义栈的数据结构,在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。此栈包含的方法有:push(value):将value压入栈中pop():弹出栈顶元素top():获取栈顶元素min():获取栈中最小元素代码实现import java.util.Stack;public class Solution { Stack<Inte

2021-11-27 21:27:29 126

原创 十进制转化成任意进制(Java)

十进制转化成任意进制(牛客网—牛客题霸算法篇—NC112)题目描述给定一个十进制数 M ,以及需要转换的进制数 N 。将十进制数 M 转化为 N 进制数。要求当 N 大于 10 以后, 应在结果中使用大写字母表示大于 10 的一位,如 ‘A’ 表示此位为 10 , ‘B’ 表示此位为 11 。若 M 为负数,应在结果中保留负号。思路Java实现进制转换使用除x取余倒排法(x为要转化的进制数)代码实现import java.util.*;...

2021-11-27 11:27:56 1232 1

原创 寻找旋转数组的最小数字(Java)

寻找旋转数组的最小数字(牛客网—牛客题霸算法篇—NC71)题目描述有一个长度为 n 的非降序数组,比如[1,2,3,4,5],[0,0,1,1,2,3]等,将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。给定这样一个旋转数组,求数组中的最小值。思路二分查找可以直接遍历数组 ,寻找最下的值,但这样就浪费了题目中给出的“旋转数组”的条件因此我们可以选用二分法来查找。定义left、right分别指向

2021-11-27 10:58:49 319

原创 求数组中三个数乘积的最大值(Java)

求数组中三个数乘积的最大值(牛客网—牛客题霸算法篇—NC106)题目描述给定一个长度为 n的无序数组 A ,其中包含正数、负数和 0 ,请从中找出 3 个数,使得乘积最大,返回这个乘积。要求时间复杂度:O(n) ,空间复杂度: O(1)。思路Java实现由于数组中存在负数,负负得正,因此可能两个负数相乘的成绩大于两个负数相乘,因此定义5个变量,存放最大的三个数和最小的两个数,依次遍历数组。最后得到最大的三个数和最小的两个数,用最大的三个数的乘积与最小的两个数与最大值的乘积相比较,返回比较结果

2021-11-26 23:03:34 925

原创 寻找单链表倒数第k个节点(Java)

寻找单链表倒数第k个节点(牛客网—牛客题霸算法篇—NC69)题目描述输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。思路Java实现先循环遍历链表,记录链表长度len。判断k与len的大小关系,如果k大,则返回长度为0的链表,否则返回倒数第k个节点。代码实现import java.util.*;/* * public class ListNode { * int val; * Li

2021-11-26 21:22:11 350

原创 判断是否是回文数字(Java)

判断是否是回文数字(牛客网—牛客题霸算法篇—NC56)题目描述在不使用额外的内存空间的条件下判断一个整数是否是回文。回文指逆序和正序完全相同默认负数不是回文数思路Java实现如果考虑将数字转化为字符串的话,需要使用额外空间的限制考虑将整数翻转,但要注意溢出的情况,具体处理代码实现import java.util.*;...

2021-11-26 21:09:39 448

原创 反转数字(Java)

反转数字(牛客网—牛客题霸算法篇—NC57)题目描述给出一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。因为给出的是32位整数,则其数值范围为[−2^31, 2^31-1]翻转可能会导致溢出,如果反转后的结果会溢出就返回 0。思路Java实现例如数字123,反转后变成321,如下123 % 10=3 123/10=12 0×10+3=312 % 10 =2 12/10=1 3×10+2=32

2021-11-26 21:02:07 1969

原创 求从A到B的路径条数(Java)

求从A到B的路径条数(牛客网—牛客题霸算法篇—NC34)题目描述一个机器人在m×n大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?思路Java实现使用动态规划到第一行和第一列每个格子的路径数都是1到其他格子的路径数等于到它上一个格子和到它左侧格子的路径数之和。代码实现import java.util.*;public class Solution { /** * *

2021-11-26 20:36:10 745

原创 螺旋矩阵(Java)

螺旋矩阵(牛客网—牛客题霸算法篇—NC38)题目描述给定一个m行n列大小的矩阵,按螺旋的顺序返回矩阵中的所有元素。思路Java实现这道题目属于一道模拟题,只需要找出输出的规则和边界终止条件即可。按时钟指针转动规则:我们可以按照时钟中指针的转动方向来模拟这道题目的输出结果。我们从最上面开始遍历,接着到边的时候就向下遍历,然后向左向上遍历,当一圈遍历结束的时候则进入里圈进行遍历。代码实现import java.util.*;public class Solution { pub

2021-11-25 19:43:37 1512 1

原创 寻找数组中出现一半以上的数字(Java)

寻找数组中出现一半以上的数字(牛客网—牛客题霸算法篇—NC73)题目描述给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。思路Java实现排序法将数组进行排序,则出现次数超过一半的数字一定会出现在数组最中间,之后统计其出现的次数,判断是否超过一半。时间复杂度:O(nlongn)空间复杂度:O(1)哈希法定义一个新的数组用来存放每个数字出现的次数;之后遍历数组,看是否有出现次数超过一半的数字。时间复杂度:O(n)空间复杂度:O(n)候选人法

2021-11-25 18:55:54 769 1

原创 判断随机扑克牌是否为顺子(Java)

判断随机扑克牌是否为顺子(牛客网—牛客题霸算法篇—NC63)题目描述从扑克牌中随机五张扑克牌,来判断一下是不是顺子。有如下规则:A为1,J为11,Q为12,K为13,A不能视为14大、小王为 0,0可以看作任意牌如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。4.数据保证每组5个数字,每组最多含有4个零,数组的数取值为 [0, 13]思路Java实现先将数组进行从小到大的排序。统计0的个数。判断:如果相邻的两个数相等,则一定不是顺子,返回f

2021-11-25 17:48:36 684

原创 求二叉树的最大深度(Java)

求二叉树的最大深度(牛客网—牛客题霸算法篇—NC13)题目描述求给定二叉树的最大深度,深度是指树的根节点到任一叶子节点路径上节点的数量。最大深度是所有叶子节点的深度的最大值。思路Java实现递归实现代码实现import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */public clas

2021-11-25 17:19:16 351

原创 寻找两个链表的第一个公共节点(Java)

寻找两个链表的第一个公共节点(牛客网—牛客题霸算法篇—NC66)题目描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。思路Java实现暴力循环两层循环,依次比较两指针法使用两个指针N1,N2,一个从链表1的头节点开始遍历,我们记为N1,一个从链表2的头节点开始遍历,我们记为N2。让N1和N2一起遍历,当N1先走完链表1的尽头(为null)的时候,则从链表2的头节点继续遍历,同样,如果N2先走完了链表2的尽头,则从链表1的头节点继续遍历,也就是说,N1和N2

2021-11-25 17:14:22 447

原创 寻找字符串中第一个出现的字符(Java)

寻找字符串中第一个出现的字符(牛客网—牛客题霸算法篇—NC31)题目描述在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)思路Java实现循环遍历代码实现public class Solution { public int FirstNotRepeatingChar(String str) { int index=0; char[] str1=str.toCharArray();

2021-11-25 16:33:45 2481

原创 使用动态规划兑换零钱(Java)

使用动态规划兑换零钱(牛客网—牛客题霸算法篇—NC126)题目描述给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。如果无解,请返回-1.思路Java实现使用动态规划定义数组dp[]dp[i] 代表给定钱数为i的时候最少货币数,即要凑成 i 元钱,至少需要dp[i] 张arr中面值纸币。当arr[j]>i,不能兑换。当arr[j]<=i时,dp[i]=dp

2021-11-24 21:29:46 1041 1

原创 二叉树的镜像(Java)

二叉树的镜像(牛客网—牛客题霸算法篇—NC72)题目描述操作给定的二叉树,将其变换为源二叉树的镜像。思路Java实现递归实现代码实现import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; *

2021-11-24 20:38:48 440

原创 判断二叉树是否对称(Java)

判断二叉树是否对称(牛客网—牛客题霸算法篇—NC16)题目描述给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)思路Java实现构建递归函数:定义函数功能:判断左右两个结点是否对称相等递归终止条件:没有子节点,说明当前结点是叶子结点没有右子节点(因为是按从左到右的顺序比较的)左右结点不对称代码实现/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = nu

2021-11-24 20:10:54 421

原创 判断是否为平衡二叉树(Java)

判断是否为平衡二叉树(牛客网—牛客题霸算法篇—NC62)题目描述输入一棵节点数为 n 二叉树,判断该二叉树是否是平衡二叉树。平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。思路Java实现这道题目其实和求二叉树的深度用到的方法是一样的,因为我们求二叉树的深度,其实就是求了左右子树的深度的最大值。我们都知道如何判断一棵二叉树是不是平衡二叉树,就是它是一棵空树或它的左右两个子树的高度

2021-11-24 19:03:26 948

原创 调整数组顺序使奇数位于偶数前面(Java)

反转字符串(牛客网—牛客题霸算法篇—)题目描述思路Java实现代码实现import java.util.*;public class Solution { /** * 反转字符串 * @param str string字符串 * @return string字符串 */ public String solve (String str) { // write code here int len=str.l

2021-11-23 23:24:37 605

原创 统计数字在升序数组中出现的次数(Java)

统计数字在升序数组中出现的次数(牛客网—牛客题霸算法篇—NC74)题目描述给定一个长度为 n 的非降序数组和一个非负数整数 k ,要求统计 k 在数组中出现的次数思路Java实现先找到数字k最先出现的位置,之后使用for循环统计k出现的次数,当array[j]不等于k时结束循环,这样可以在一定程度上减少循环的次数。代码实现public class Solution { public int GetNumberOfK(int [] array , int k) { int

2021-11-23 22:52:00 389

原创 判断有序括号列(Java)

判断有序括号列(牛客网—牛客题霸算法篇—NC52)题目描述给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。思路Java实现每次遇到’(’,’{’,’[‘这三种字符的时候,将字符入栈stk;而每次遇到’)’,’}’,’]‘这三种字符的时候则让对应的匹配字符出栈。具体规则如下:1)引入辅助栈stack,遍历字符串,每次遇到’(’,

2021-11-23 22:44:28 189

空空如也

空空如也

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

TA关注的人

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