首页 > 08 16 老虎集团 笔试 后端开发 Python
头像
我不想当大白菜
编辑于 2020-08-16 18:10
+ 关注

08 16 老虎集团 笔试 后端开发 Python

08 16 老虎集团 笔试 后端开发 Python

分析

2道编程,10道选择,选择的分值还是挺重的。

1

给定非递减序列如[-8 -4 -3 0 1 2 4 5 8 9]和数k,找出不重复的两数和为k的数对。要求时间复杂度O(n),空间O(1)

示例输出 K=10
1 9
2 8
  • 思路就是左右双指针向中间遍历,注意需要判断是不是和上一对重复了。
while True:
    try:
        n,k = list(map(int,input().split()))
        nums = list(map(int,input().split()))

        left,right = 0,n-1
        while left < right:
            if nums[left] + nums[right] < k:
                left += 1
            elif nums[left] + nums[right] == k:
                if left == 0 or right == n-1:
                    print("{} {}".format(nums[left],nums[right]))
                elif left-1>=0 and nums[left-1]!=nums[left] and right+1<n and nums[right+1]!=nums[right]:
                    print("{} {}".format(nums[left],nums[right]))
                left += 1
                right -= 1
            else:
                right -= 1
    except:
        break

2.

给定的数组,通过两次操作计算剩下的数组和的最小值。该操作定义:选取数字x,所有大于等于x的数字减去x。

  • 两次选择之间好像是有关联的,一开始分别求每一阶段的最优只A了50
  • 然后换成了暴力怼,A到60
class Solution:
    def minimumValueAfterDispel(self , nums ):
        # write code here
        if len(nums) <= 1:return 0

        min_val = 1e9
        nums.sort()
        unique_vals = set(nums)
        for val in unique_vals:
            nnums = nums.copy()
            for i in range(len(nnums)):
                if nnums[i] >= val:
                    nnums[i] -= val
            next_vals = self.calc_max_minus(nnums)
            for i in range(len(nnums)):
                if nnums[i] >= next_vals:
                    nnums[i] -= next_vals
            min_val = min(min_val,sum(nnums))
        return min_val

    def calc_max_minus(self,nums):
        nums.sort()
        length = len(nums)
        _max = 0
        _val = 0
        for i,val in enumerate(nums):
            cur_val = val * (length -i)
            if cur_val > _max:
                _max = cur_val
                _val = val
        return _val

总结

还是菜

全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐