美文网首页
算法每日一题之Day-1

算法每日一题之Day-1

作者: 我是卖报的小行家 | 来源:发表于2020-10-08 23:21 被阅读0次

    1.数组逆序排列(反转字符串)

    核心思想:
    对于长度为 N 的待被反转的字符数组,我们可以观察反转前后下标的变化,假设反转前字符数组为 s[0] s[1] s[2] ... s[N - 1],那么反转后字符数组为 s[N - 1] s[N - 2] ... s[0]。比较反转前后下标变化很容易得出 s[i] 的字符与 s[N - 1 - i] 的字符发生了交换的规律,因此我们可以得出如下双指针的解法:
    
    将 left 指向字符数组首元素,right 指向字符数组尾元素。
    当 left < right:
    交换 s[left] 和 s[right];
    left 指针右移一位,即 left = left + 1;
    right 指针左移一位,即 right = right - 1。
    当 left >= right,反转结束,返回字符数组即可。
    

    上代码

    -(NSArray *)getIntervelArrayWithArray1:(NSMutableArray *)array{
        
        NSInteger n = array.count;
        for (NSInteger left = 0,right = n-1; left < right; ++left, --right) {
            NSString * temp = array[left];
            array[left] = array[right];
            array[right] = temp;
        }
        return [array mutableCopy];
    }
    备注:转载于此篇华文:https://leetcode-cn.com/problems/reverse-string/solution/fan-zhuan-zi-fu-chuan-by-leetcode-solution/
    

    相关文章

      网友评论

          本文标题:算法每日一题之Day-1

          本文链接:https://www.haomeiwen.com/subject/vjjkpktx.html