自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣面试题12:有效的括号(栈与队列)

首先遍历这个括号字符串,如果遇到左括号,就将这个括号对应的右括号放进栈里面,当然首先需要定义一个栈,当我们遍历完左括号后,再寻找右括号,如果找的右括号与栈里面的括号不匹配的话,就说明里面的括号多了或者少了就返回false;如果遍历完了之后,栈里面的元素不为空的话,说明原来的字符串多了括号;

2023-12-15 10:32:01 372

原创 力扣面试题11:实现字符串中翻转单词

首先我们的需要考虑字符串中有很多空格的情况,因为后面得到的字符串是只有单词之间有空格的,所以我们先需要做去空格操作:代码如下:(我们需要采用双指针的方法)解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。今天的这道题目算是有点难度的题目,整体来说考察的逻辑挺难的,下面给出实例。解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。输入: "a good example"输出: "blue is sky the"输出: "example good a"

2023-12-10 22:49:10 393

原创 力扣面试题10:翻转字符串的实现

最近学习到了字符串的部分,感觉自己进度太慢了,碰到了新的题目还是不会做啊哈哈哈,本道题目要实现字符串的翻转,有些伙伴会直接暴力解法,去循环遍历每个原酸,然后找到k之前的元素进行操作,但是这里有更简单的方法。给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。输入: s = "abcdefg", k = 2。输出: "bacdfeg"

2023-12-10 17:15:09 386

原创 力扣面试题09:两数之和的算法

又要返回它的下标,那么这种有两个指标的做好就是用map了,map中包含一个key对应的是数组元素,value对应的是元素下标,那么我们在遍历这个数组的时候,我们用目标数减去这个数组中的元素,如果没有找到对应的这个元素,我们就把这个元素放进map里,等待下一次找数组元素的时候,看看这个map里有没有对应的元素,如果有,就返回它的下标;两数之和的算法就是给定你一个整数数组,比如[1,2,3,4,5],给定一个整型目标5,要求算出这个数组中能够相加变成5的两个元素;并且返回组成的数组的元素的下标数组;

2023-12-07 13:31:16 398 1

原创 力扣面试题08:删除链表中第倒数N个节点

这里我们最暴力的方法就是首先去遍历,然后找到第倒数N个元素,然后把它删除掉,这样的时间复杂度就很高了,最好的方法是是使用双指针法,我们定义一个fastindex,定义一个slowindex,我们先让走n+1的位置,为什么要走n+1呢,因为我们要让slowindex走到需要删除节点的上一个节点,这样方便进行操作;

2023-12-06 11:42:29 375 1

原创 力扣面试题07:实现链表的相邻两个节点的交换

那么我们怎么样去入手的,这道题目大家第一个想到的可能就是双指针法,但是双指针法对于元素的删除或者是删除重复元素,找到元素有很好的效果,但是对于这种交换链表可能不太行;你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。给一个实例会更好理解。

2023-12-06 11:22:37 385 1

原创 力扣面试题06:翻转链表的实现

首先说一下双指针法,这里我们定义了一个current节点表示当前的节点,定义了一个pre节点表示current的上一个节点,初始化的时候令current等于head节点,pre节点等于NULL;示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL。这里介绍了两种方法,分别是双指针法和递归法,递归法是在双指针法的基础上实现的。题意:反转一个单链表。

2023-12-03 15:12:34 409 1

原创 力扣面试题05:删除链表元素

示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]这道题目目的考察的就是链表的节点中元素删除,链表室友一个个节点组成的,节点包含数据域与指针域,如下图所示。示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]示例 2: 输入:head = [], val = 1 输出:[]第二种 创建虚拟头结点,这样就不用删除头结点了,建议用这用方法。今天的分享就到这里,希望对各位小伙伴有帮助,给个赞鼓励一下吧!

2023-12-02 22:42:13 383 1

原创 力扣面试题04:给定一个正整数n,要求画出n的螺旋矩阵

顺时针画圈的过程:就是从左到右,从上到下,从右到左,从下到上的一个过程,然后在继续这个过程,由外向内这么一圈一圈画出去,直接给代码吧。输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]这个题目确实是想了好久,以前没有做过类似的题目,用C++画矩阵真的用的很少,想了好久没有相处答案;好了,今日的算法题目分享就到这里,希望能对小伙伴们有帮助!

2023-11-30 16:41:27 340

原创 力扣面试题03:(双指针的用法)有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。今天刷到一个数组题目,也是数组的一个经典题目,废话不多说,直接上实例;

2023-11-29 14:37:37 319 1

原创 力扣面试题02:删除数组中重复的元素,使其只存留这个重复元素的一个元素,并且返回数组元素个数;

双指针法在链表、数组、队列里面经常用到,实现的原理就是使用慢指针slowindex代表的元素位置代替快指针代表的元素位置,当相邻两个元素不一样时,中间重复出现的元素就会只留下一个元素。比如有一个数组vector<int>aryy={0,1,1,2,2,3,3,4,4};使其成为{0,1,2,3,4};返回数组元素个数5.

2023-11-28 22:14:37 309

原创 力扣面试题01:删除数组中的元素并且返回该数组的个数和元素

今日题目:指定一个数组,定义一个元素,如果数组中存在这个元素,删除这个元素,并且返回该数组的个数和元素,否则返回-1;第二种方法:使用双指针。

2023-11-28 16:43:00 333 1

空空如也

空空如也

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

TA关注的人

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