台式电脑

怎么样电脑有双重指针(第 2 天 双指针)

第 2 天 双指针

977.有序数组的平方

给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。

示例1:

输入:nums=[-4,-1,0,3,10]

输出:[0,1,9,16,100]

解释:平方后,数组变为[16,1,0,9,100]

排序后,数组变为[0,1,9,16,100]

示例2:

输入:nums=[-7,-3,2,3,11]

输出:[4,9,9,49,121]

提示:

1<= nums.length <= 104

-104<= nums[i] <= 104

nums已按非递减顺序排序

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

第 2 天 双指针

Swift

importUIKit

classSolution{

funcsortedSquares(_nums:[Int])->[Int]{

guard!nums.isEmptyelse{

return[]

}

varresult=[Int](repeating:0,count:nums.count)

varleft=0,right=nums.count-1

varlastIndex=nums.count-1

whileleft<= right {

ifabs(nums[left])>=abs(nums[right]){

result[lastIndex]=nums[left]*nums[left]

left+=1

}else{

result[lastIndex]=nums[right]*nums[right]

right-=1

}

lastIndex-=1

}

returnresult

}

怎么样电脑有双重指针(第 2 天 双指针)

}

print(Solution().sortedSquares([-4,-1,0,3,10]))

189.轮转数组

给你一个数组,将数组中的元素向右轮转k个位置,其中k是非负数。

示例1:

输入:nums=[1,2,3,4,5,6,7],k=3

输出:[5,6,7,1,2,3,4]

解释:

向右轮转1步:[7,1,2,3,4,5,6]

向右轮转2步:[6,7,1,2,3,4,5]

向右轮转3步:[5,6,7,1,2,3,4]

示例2:

输入:nums=[-1,-100,3,99],k=2

输出:[3,99,-1,-100]

解释:

向右轮转1步:[99,-1,-100,3]

向右轮转2步:[3,99,-1,-100]

提示:

1<= nums.length <= 105

-231<= nums[i] <= 231 - 1

0<= k <= 105

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/rotate-array

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

第 2 天 双指针

Swift

classSolution{

funcrotate(_nums:inout[Int],_k:Int){

lettempIndex=k%nums.count

nums.reverse()

nums[0..< tempIndex].reverse()

nums[tempIndex..< nums.count].reverse()

}

}

varnums=[1,2,3,4,5,6,7]

Solution().rotate(&nums,3)

print(nums)

相关新闻

返回顶部