leetcode中数学类/数组类题目

1.整数反转

leetcode中数学类/数组类题目_第1张图片

思路:两种方法,1是把数字转化为字符串,用字符串倒序遍历的方式,需要开辟额外空间。

2是用➗10取余数的方法。

https://leetcode-cn.com/problems/reverse-integer/solution/hua-jie-suan-fa-7-zheng-shu-fan-zhuan-by-guanpengc/

2.三数之和

leetcode中数学类/数组类题目_第2张图片

class Solution(object):
    def threeSum(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        nums.sort()
        res=[]
        for i in range(len(nums)-2):
            if i > 0 and nums[i] == nums[i - 1]:
                continue
            left=i+1
            right=len(nums)-1
            while leftleft and nums[right]==nums[right-1]:
                        right=right-1
                    left=left+1
                    right=right-1
                elif nums[i]+nums[left]+nums[right]>0:
                    while right>left and nums[right]==nums[right-1]:
                        right=right-1
                    right=right-1
                elif nums[i]+nums[left]+nums[right]<0:
                    while left < right and nums[left]==nums[left+1]:
                        left=left+1
                    left=left+1
        return res

3.合并排序的数组

leetcode中数学类/数组类题目_第3张图片

思路:倒叙遍历

class Solution(object):
    def merge(self, A, m, B, n):
        """
        :type A: List[int]
        :type m: int
        :type B: List[int]
        :type n: int
        :rtype: None Do not return anything, modify A in-place instead.
        """
        #倒叙遍历
        index1=m-1
        index2=n-1
        index3=m+n-1
        while index1>=0 and index2>=0:
            if A[index1]

4.数组中的第k个最大元素

leetcode中数学类/数组类题目_第4张图片

思路:

https://leetcode-cn.com/problems/kth-largest-element-in-an-array/solution/shu-zu-zhong-de-di-kge-zui-da-yuan-su-by-leetcode/

根据快速排序的思想,快速排序:取一个中间值,小于这个中间值的放到左边,大于这个中间值的放到右边。如果中间值的index等于target的话,就找到了结果。

 

你可能感兴趣的:(leetcode,面试,剑指offer)