刷题记录汇总,备战实习

  • Post author:
  • Post category:其他


2022.9.1

给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组

python实现思路

(1): 新建一个列表,然后对比两数组的大小,然后插入到新的数组中

2022.9.4:

abby总是在通过卡牌的交换位置来获得1,2,3….N的序列。假如初始序列是2、3、5、4、1,我们就可以按照以下方式对它们进行排序:

初始状态:2 3 5 4 1

第一次后:1 3 5 4 2

第二次后:1 3 2 4 5

第三次后:1 2 3 4 5

所以,这里小abby对卡牌进行了三次交换。

输入,[2,3,5,4,1],输出3

python实现思路:

(1):遍历一遍数组长度,获取每个位置对应的数的索引,然后进行交换,统计交换次数,碰到相邻的两个数就跳过。

(2):先对数组进行排序,然后和未排序的数组进行比较,确定需要交换的次数

2022.9.7

给定一个整数数组 nums 和一个目标值 target ,找出数组中和为目标值的两个数,并返回它们的数组下标。

假设每个输入只对应一种答案,且同样的元素不能被重复利用。

解题思路:

新建一个字典,然后用数组中的值和索引建立字典,再遍历数组,判断差值是不是在字典中,从而获得索引。

2022.9.17

小红和小紫拿到了一个正整数x,她们每次可以选择x的一个因子k(k>1),把x除以k,但要求k必须是素数。
小红先手,谁先不能操作谁输。假设两人都足够聪明,最终谁取得胜利?

共进行t次游戏。
输入描述:
第一行输入一个正整数t,代表游戏的轮数。
接下来的行,每行输入一个正整数x,代表小红和小紫拿到的正整数
for _ in range(int(input())):
    x = int(input())
    c = 0
    while x % 2 == 0:
        c += 1
        x //= 2

    for i in range(3, 100001, 2):
        if x == 1: break
        while x % i == 0:
            c += 1
            x //= i
    if x > 1: c += 1
    print('kou' if c & 1 else "yukari")



版权声明:本文为m0_73786666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。