刷题第四天(跑路人笔记)<双指针>

简介: 刷题第四天(跑路人笔记)<双指针>

第四天(双指针)

翻转字符串

344. 反转字符串 - 力扣(LeetCode)


image.png


双指针一个指向最左一个指向最右, 进行交换即可=.=(好水的一道题)

void reverseString(char* s, int sSize)
{
    int left = 0;
    int right = sSize - 1;
    while(left < right)
    {
        int tmp = s[left];
        s[left] = s[right];
        s[right] = tmp;
        left++;
        right--;
    }
}


反转字符串中的单词 |||

557. 反转字符串中的单词 III - 力扣(LeetCode)


image.png


看注释=.=


char * reverseWords(char * s)
{
    int len = strlen(s);
    int i = 0;
    while(i<len)
    {
        int start = i;//当做开头
        while(i < len-1 && s[i+1] != ' ')//len-1防止'\0's[i+1]!=' '是找单词的结尾部分
        {
            i++;
        }
        int left = start;
        int right = i;
        while(left < right)//反转单词
        {
            int tmp = s[left];
            s[left] = s[right];
            s[right] = tmp;
            left++;
            right--;
        }
      i += 2;//因为现在的位置是前单词的后方我们跳两个位置就可以直接跳到下一个单词的第一个位置了.
    }
    return s;
}



相关文章
|
6月前
|
算法 容器
OJ刷题日记:2、双指针(2)
OJ刷题日记:2、双指针(2)
43 0
|
6月前
|
算法
LeetCode刷题---21.合并两个有序链表(双指针)
LeetCode刷题---21.合并两个有序链表(双指针)
|
6月前
|
算法
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
|
3月前
|
Python
【Leetcode刷题Python】138. 复制带随机指针的链表
LeetCode上题目“138. 复制带随机指针的链表”的Python解决方案,包括两种方法:一种是在每个节点后复制一个新节点然后再分离出来形成新链表;另一种是构建一个字典来跟踪原始节点与其副本之间的映射关系,从而处理新链表的构建。
20 1
|
6月前
|
算法 测试技术 容器
【刷题】双指针入门
经过这四道题目的洗礼,我大概对双指针有了初步印象,接下来我会继续努力!!!
76 13
【刷题】双指针入门
|
4月前
|
算法 Java C语言
刷题训练之双指针问题
刷题训练之双指针问题
30 0
|
6月前
|
C++
指针(笔记2)一
本文介绍了C++中`const`关键字修饰指针的两种情况:当`const`位于星号(*)左侧时,它限制指针所指向的内容不可修改,但指针自身可变;当`const`位于星号(*)右侧时,它限制指针变量不可改变,但可通过该指针修改其指向的内容。此外,文章还讨论了指针的基本运算,包括指针加减整数(用于遍历数组),指针减指针(计算两者间元素个数)以及指针的关系运算(在循环中控制指针移动)。
40 1
|
6月前
|
人工智能 C++
指针习题笔记(较难,可用于思维锻炼)
指针习题笔记(较难,可用于思维锻炼)
33 4
|
6月前
|
算法 测试技术 容器
【刷题】双指针进阶
请看入门篇 :双指针入门
31 0
【刷题】双指针进阶
|
6月前
|
算法
"刷题记录:哈希表+双指针 | leetcode-2465. 不同的平均值数目 "
该文段是一篇关于编程题目的解答,主要讨论如何找到数组中所有不同平均值的个数。作者首先使用排序和哈希集来解决,将数组转为列表排序后,通过双指针计算平均值并存入哈希集以去重。然后,作者发现可以优化方案,通过双指针在排序后的数组中直接计算两数之和,用哈希集记录不重复的和,从而避免实际计算平均值,提高了算法效率。最终代码展示了这两种方法。
55 0