如何做淘宝客个人网站,app代理推广合作,珠海建设网站的公司哪家好,百度联盟申请这里写目录标题 一、非自身以外数字的乘积二、最大数三、奇数排序 一、非自身以外数字的乘积
给你一个整数数组 nums#xff0c;返回 数组 answer #xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀… 这里写目录标题 一、非自身以外数字的乘积二、最大数三、奇数排序 一、非自身以外数字的乘积
给你一个整数数组 nums返回 数组 answer 其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请不要使用除法且在 O(n) 时间复杂度内完成此题。
示例 1: 输入: nums [1,2,3,4] 输出: [24,12,8,6]
示例 2: 输入: nums [-1,1,0,-3,3] 输出: [0,0,9,0,0]
def test2(nums):n len(nums)res [0] * nk 1for i in range(n):res[i] kk k * nums[i]k 1for i in range(n - 1, -1, -1):res[i] k * res[i]k k * nums[i]return resnums [1, 2, 3, 4]
res test2(nums)
print(res)二、最大数
给定一个list 由一些非负整数组成 重新排列他们的顺序把他们组成一个最大的整数。 例子 输入 [30,1] 返回值 “301”
import itertoolsnums [1, 201, 20, 9, 8]
s list(map(str, nums))
print(s)
ordered sorted(s, keylambda x: x, reverseTrue)
print(ordered)def fn(nums):s list(map(str, nums)) # [30,1] ——》 [30, 1]ordered sorted(s, keylambda x: x, reverseTrue) # 根据首位排序# 首位相同的进行二次排序for i in range(len(ordered) - 1):if ordered[i][0] ordered[i 1][0]:if int(ordered[i][-1]) int(ordered[i 1][-1]):ordered[i], ordered[i 1] ordered[i 1], ordered[i]return int(.join(ordered))nums [301, 302, 34]
print(fn(nums))
三、奇数排序
哈利波特获得了一个数字列表他的任务是必须将奇数按升序排序同时将偶数保留在原来的位置。魔法师们快来帮帮他吧
nums [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]def test(nums):res1 sorted([i for i in nums if i % 2 1])for index in range(len(nums)):if nums[index] % 2 ! 0:nums[index] res1[0]res1.pop(0)return numsr test(nums)
print(r)