自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode345 反转字符串中的元音字母Java

LeetCode345 反转字符串中的元音字母编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:​输入:"hello"输出:"holle"示例 2:​输入:"leetcode"输出:"leotcede"​提示:元音字母不包含字母 "y" 。class Solution {​ public String reverseVowels(String s) {​ int n = s.length(); ...

2021-05-15 22:51:55 178

原创 LeetCode 344. 反转字符串Java

LeetCode 344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a","h"]输出:["h","

2021-05-14 22:53:29 142

转载 LeetCode 151. 翻转字符串中的单词Java

LeetCode 151. 翻转字符串中的单词给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个 单词 。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。示例 1:输入:"the sky is blue"输出:"blue is sky the"示例 2:输入:" hello world! "输出:"world! hello"解释:输入字符串可以在前面或者后面包...

2021-05-14 22:52:53 184

原创 LeetCode 283. Java判断一个链表是否为回文链表

LeetCode 283. 判断一个链表是否为回文链表请判断一个链表是否为回文链表。​示例 1:​输入: 1->2输出: false示例 2:​输入: 1->2->2->1输出: true//O(n)空间和时间复杂度class Solution { public boolean isPalindrome(ListNode head) { // 使用栈,先让所有元素进栈,然后再出栈与链表的头部元素开始...

2021-05-13 20:05:42 255

原创 LeetCode 283. 移动零-Java

LeetCode 283. 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。​示例:​输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:​必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。/*我们创建两个指针i和j,第一次遍历的时候指针j用来记录当前有多少非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪,第一次遍历完后,j指针的下标就指向了最后一个非0元素下标。...

2021-05-12 20:37:59 71

原创 LeetCode 53 最大子序和Java

LeetCode 53 最大子序和给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:​输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。class Solution { public int maxSubArray(int[] nums) { if( nums.length == 0) return ...

2021-05-11 22:25:58 81

原创 剑指Offer50 第一个只出现一次的字符

剑指Offer50 第一个只出现一次的字符在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。​示例:s = "abaccdeff"返回 "b"s = "" 返回 " "class Solution { public char firstUniqChar(String s) { char[] chars = s.toCharArray();//转成字符数组 //创建一个整型数...

2021-05-10 21:37:55 73

原创 LeetCode 3 无重复字符的最长子串(Java)

LeetCode 3 无重复字符的最长子串题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为...

2021-05-09 15:02:21 165

原创 LeetCode 108 将有序数组转换为二叉搜索树Java

LeetCode 108 将有序数组转换为二叉搜索树题目描述:给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。​高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。代码:class Solution { public TreeNode sortedArrayToBST(int[] nums) { return buildTree(nums,0,nums.len...

2021-04-28 22:39:04 64

原创 LeetCode 322 零钱兑换(Java)

LeetCode 322 零钱兑换题目描述:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。​你可以认为每种硬币的数量是无限的。​​示例1:​输入:coins = [1, 2, 5], amount = 11输出:3 解释:11 = 5 + 5 + 1示例 2:​输入:coins = [2], amount = 3输出:-...

2021-04-27 22:33:27 240

原创 LeetCode 215. 数组中的第K个最大元素(Java)

LeetCode 215. 数组中的第K个最大元素题目描述:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。​示例 1:​输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:​输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4代码:class Solution { //法一可以排序,然后找出第(len-k)的元素 //...

2021-04-26 22:54:07 128

原创 LeetCode 560 和为k的子数组(Java)

LeetCode 560 和为k的子数组题目描述:给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。​示例 1 :​输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :​数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数k的范围是[-1e7, 1e7]。代码:class Solution { ...

2021-04-26 22:25:43 143

原创 剑指 Offer 39. 数组中出现次数超过一半的数字

剑指 Offer 39. 数组中出现次数超过一半的数字 题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2复制代码代码:class Solution { public int majorityElement(int[] nums) { // 法一:也可直接对数组排序,取中间那个元素,即为超过一.

2021-04-24 21:31:45 72

原创 剑指Offer 3 找出数组中重复的数字

题目描述:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 复制代码代码:class Solution { public int findRepeatNumber(int[] nums) { //利用set集合进行查找重

2021-04-24 21:30:59 136

原创 LeetCode 88 合并两个有序数组

LeetCode 88 合并两个有序数组题目描述:给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1 的空间大小等于m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,...

2021-04-23 22:32:11 63

原创 LeetCode 59 螺旋矩阵II(Java)

LeetCode 59 螺旋矩阵II题目描述:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]复制代码代码:class Solution { public int[][] generateMatrix(int n) { int[][] matrix = new int[n][n]; int top = 0;

2021-04-22 21:16:11 77

原创 LeetCode 54 螺旋矩阵I(Java)

LeetCode 54 螺旋矩阵I题目描述:给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]复制代码代码:class Solution { public List<Integer> spiralOrder(int[][] matrix) { // 定义四个坐标点 in

2021-04-22 21:13:45 112

原创 LeetCode125 验证回文串(Java)

LeetCode125 验证回文串题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false复制代码代码: public boolean isPalindrome(String s) { // 使用左右两个标记位

2021-04-21 22:56:01 124

原创 LeetCode 50 实现一个pow(x,n) x的n次幂

LeetCode 50 实现一个pow(x,n) x的n次幂题目描述:实现pow(x, n),即计算 x 的 n 次幂函数(即,xn)。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100复制代码代码:class Solution { public double myPow(double x, int n) { // 三个特殊n值的判断 ..

2021-04-21 22:55:07 130

原创 LeetCode25 K个一组翻转链表(Java实现)

LeetCode25 K个一组翻转链表(Java实现)题目描述:给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。复制代码代码:class Solution { public ListNode reverseKGroup(ListNode head, int k) { ListNode pre = null; L...

2021-04-20 20:59:06 117

原创 LeetCode15 三数之和(Java实现-小白必懂)

LeetCode15 三数之和(Java实现)题目描述:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]复制代码代码:class Solution { public List<List<Int...

2021-04-19 21:43:10 135

原创 输入一个已经按升序排列过的数组和一个数字,在数组中查找这两个数,使得正好等于输入的那个数,输出数组中的这两个数C语言

1、例如输入数组1、2、4、7、11、15和数字15,输出4和112、代码 void fun(int arr[],int n,int key){ int i=0,j=n-1;//因为已经排过序,所以声明两个变量,从第一个元素和最有一个元素出发 while(i!=j){ if(arr[i]+a...

2020-03-22 10:11:40 1252

转载 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份JAVA

1、海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?2、思想:因为第五个猴子的做法也是扔掉一个桃子,再分为五份,取走一份,所以最后一次最少有6个桃子, ...

2020-03-21 07:34:29 3035 3

转载 一篇文章理清楚——软件测试的方法(总结)

软件测试方法种类繁多,记忆起来混乱, 如果把软件测试方法进行分类, 就会清晰很多。 这里参考一些书籍和网上的资料, 把常用的软件测试方法列出来, 让大家对软件测试行业有个总体的看法。从测试设计方法分类测试名称:黑盒测试(Black Box) 测试内容:黑盒测试是把测试对象看做一个黑盒子,利用黑盒测试法进行动态测试时,需要测试软件产品已经实现的功能是否符合功能设计要求,不需测试软件产品的内...

2020-03-16 10:19:43 288

转载 自动化测试框架的思想

1、所谓模块化思想,就是将一个测试用例中的几个不同的测试点拆分并且将其单个点的测试步骤进行了封装,形成了一个模块。例如:一个测试用例要对一个登录程序进行测试,其中包括:用户名输入、密码输入、以及确定登录;那么就可以将用户名输入、密码输入、确定登录、取消登录四个操作分别封装在四个不同的模块中。测试时,只需调用其模块即可。这样的话,当一个模块有变化,你只需单独维护那个模块即可,也可以根据模块的...

2020-03-16 09:43:44 433

转载 【leetcode】删除链表的倒数第N个节点(C语言解答)

1、给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.2、双指针的操作 分析:首先让指针first指向头节点,然后让其向后移动n步,接着让指针sec指向头结点,并和first一...

2020-03-16 07:51:48 587

原创 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。(C语言)

1、给定一个链表,查找链表的倒数第n个节点,若查找成功,输出该节点,返回1,否则,返回0.2、使用双指针,从头至尾遍历链表,p指向head->next,p1指向头节点head,当遍历到链表最后一个结点时,p所指向的结点即为所查找的结点int deleteElem(LNode *head,int k){ p1=head->next; p=he...

2020-03-16 07:44:53 1514

转载 合并K个排序链表(C语言)

1、例如:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->62、代码 分析:首先,要判断数组为空的情况,如果数组为空直接返回空,如果只有一个链表,那个直接返回这个链表。 因为K的链表都是排序链表,所以先将第...

2020-03-16 07:08:08 371

原创 输入英文句子,将其倒置(C语言)

//例如输入英文句子“iloveyou!” 经过reverse 输出“youlovei!”voidreverse(char str[]){ char str[100]; //n为起始输出的位置,m为标点的位置 int m,n=0; int i, j; for( int...

2020-03-15 15:37:48 937

原创 小白理解的单例模式(通俗易懂)

1、单例模式:是一种常用的软件设计模式,属于创建型模式的一种。在应用这个模式时,单例对象的类必须保证只有一个实例存在。2、实现单例模式的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称);当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;...

2020-03-11 15:13:35 500

原创 采用定长顺序存储表示串,编写一个函数,删除串中从下标为i的字符开始,如果第i个字符后没有足够的j个字符,则有几个删除几个(C语言)

1、思想:从i+j开始,将字符向前移动j个字符,然后再计算删除的长度,赋值2、代码typedef struct { char str[maxsize+1]; int length;}Str;void delete(Str &str,int i,int j){ if(i<str.length...

2020-03-11 10:33:04 1652

原创 删除str中值为ch的所有字符,如果strw为空串,或者串中不含值ch的字符,则不操作(C语言)

1、思想:遍历整个字符串,遇到ch,则移动其后的元素,长度减1,直到扫描到最后一个字符2、代码 typedef struct { char str[maxsize+1]; int length;}Str;void delete(Str &str ,char ch){ if(s...

2020-03-11 10:17:28 505

原创 实现串str的逆转函数,如果串str为空,则不操作(C语言)

1、思想:设置两个指针指向串首和串尾,然后相向而行,交换字符,两指针相遇时,结束操作2、代码typedef struct { char str[maxsize+1]; int length;}Str;void swap(char &ch1,char &ch2){ char t...

2020-03-11 10:05:12 262 1

原创 图的广度优先遍历BFS(非递归C语言)邻接表存储

1、广度优先搜索算法(英语:Breadth-First Search,缩写为BFS),又译作宽度优先搜索,或横向优先搜索,是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止2、代码 //采用队列的数据结构 void BFS(Agraph *g,int v,int visit[ma...

2020-03-08 08:16:08 720

原创 图的深度优先遍历DFS(非递归C语言)邻接表存储

1、深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。属于盲目搜...

2020-03-07 08:30:20 2113

转载 LeetCode(93): 复原IP地址

题目描述:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]由于每段数字最多只能有三位,而且只能分为四段,所以情况并不是很多,我们可以使用暴力搜索的方法,每一段都循环1到3,然后当4段位数之和等于原字符串长度时,我们进一步判断每段数字是...

2020-03-07 08:10:36 138

原创 折半插入排序(概念、原理、代码)C语言

1、折半插入排序(binary insertion sort)是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不用按顺序依次寻找插入点,可以采用折半查找的方法来加快寻找插入点的速度。2、折半查找:要求线性表是有序的,确定查找区间,找到该区间的中间位置mid,将mid的值与待查找的值比较,若大于mid值,则在右区...

2020-03-05 08:21:28 2390

原创 快速排序(概念、原理、代码)C语言

1、快速排序:,又称划分交换排序(partition-exchange sort),简称快排,一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序n个项目要O(n log2 n)(大O符号)次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序(n log n)通常明显比其他算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地达成。——...

2020-03-05 07:53:44 1250

原创 希尔排序(概念、原理、代码)C语言

1、希尔排序(Shellsort),也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。2、希尔排序:(1)只不过是将待排序列按某种规则分成几个子序列,分别对这几个子序列进行直接插入排序 (2)这个规则的体现就是增量的选取,如果增量为1,就是直接插入排序 (3) 希尔排序...

2020-03-03 19:40:37 559 4

原创 冒泡排序(概念、原理、代码)C语言搞定

1、冒泡排序(英语:Bubble Sort)又称为泡式排序,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序对n个项目需要O( n^2)的比较次数,且可以原地排序。尽管这个算法是最简单了解和...

2020-03-03 08:45:06 322

空空如也

空空如也

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

TA关注的人

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