第八周_LeetCode
题目一:
88. Merge Sorted Array
题目描述:
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
- The number of elements initialized in nums1 and nums2 are m and n respectively.
- You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.
测试样例:
Example:
Input: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 Output: [1,2,2,3,5,6]
思路分析:
先通过循环将nums2中的元素转移到nums1中,再通过sorted将nums1的前m+n个元素进行排序。
def merge(self,nums1, m, nums2, n):
i=0
while i<n:
nums1[i+m] = nums2[i]
i += 1
nums1[:m+n] = sorted(nums1[:m+n])
运行结果:
题目二:
268. Missing Number
题目描述:
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n
, find the one that is missing from the array.
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
测试样例:
Example 1
Input: [3,0,1] Output: 2
Example 2
Input: [9,6,4,2,3,5,7,0,1] Output: 8
利用异或运算的规律 0 ^ a = a, 以及 a ^ b ^ a = b
代码:
class Solution:
def missingNumber(self, nums):
i=0
result = 0
while i<len(nums):
result = result^i^nums[i]
i = i+1
return result^i
运行结果: