每日一练 — 2021.12.22


一、生成100个2位随机正整数

1,程序简介

  • 生成100个2位随机正整数,按每行十个输出,并求出个位数字分别为0,1,2,3,4,5,6,7,8,9的正整数的个数

2,程序代码

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 22 15:47:35 2021
Function:
@author: 小梁aixj
"""
import random
def fun():
    random_list = [random.randint(10, 99) for n in range(100)]
    statistics = {n: 0 for n in range(10)}
    for index, x in enumerate(random_list):
        print(x, end=' ')
        statistics[int(x % 10)] = statistics[int(x % 10)] + 1
        if ((index + 1) % 10 == 0):
            print()
        print(statistics)
if __name__=='__main__':
    fun()

3,运行结果

在这里插入图片描述

二、旋转图像

1,程序简介

  • 给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

  • 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

示例 1:

在这里插入图片描述

  • 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
  • 输出:[[7,4,1],[8,5,2],[9,6,3]]
示例 2:

在这里插入图片描述

  • 输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
  • 输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]
示例 3:
  • 输入:matrix = [[1]]
  • 输出:[[1]]
示例 4:
  • 输入:matrix = [[1,2],[3,4]]
  • 输出:[[3,1],[4,2]]
提示:
matrix.length == n
matrix[i].length == n
1 <= n <= 20
-1000 <= matrix[i][j] <= 1000

以下程序实现了这一功能,请你填补空白处内容:

#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
	void rotate(vector<vector<int>> &matrix)
	{
		int size = matrix.size();
		for (int i = 0; i < size / 2; i++)
		{
			int low = i, high = size - i - 1;
			for (int j = low; j < high; j++)
			{
				int tmp = matrix[i][j];
				_________________________
			}
		}
	}
};

2,程序代码

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 22 15:48:19 2021
Function:
@author: 小梁aixj
"""
class Solution(object):
    def rotate(self, matrix):
        if matrix is None or len(matrix) == 1:
            return
        ls = len(matrix)
        for i in range(int(ls / 2)):
            begin, end = i, ls - 1 - i
            for k in range(ls - 2 * i - 1):
                temp = matrix[end - k][begin]
                matrix[end - k][begin] = matrix[end][end - k]
                matrix[end][end - k] = matrix[begin + k][end]
                matrix[begin + k][end] = matrix[begin][begin + k]
                matrix[begin][begin + k] = temp
        return matrix
if __name__=='__main__':
    s = Solution()
    print(s.rotate([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]))
    print(s.rotate([[1,2], [3,4]]))
    print(s.rotate([[1,2,3],[4,5,6],[7,8,9]]))

3,运行结果

在这里插入图片描述

三、两数之和

1,程序简介

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

  • 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

  • 你可以按任意顺序返回答案。

示例 1:
  • 输入:nums = [2,7,11,15], target = 9
  • 输出:[0,1]
  • 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
  • 输入:nums = [3,2,4], target = 6
  • 输出:[1,2]
示例 3:
  • 输入:nums = [3,3], target = 6
  • 输出:[0,1]
提示:
2 <= nums.length <= 103
-109 <= nums[i] <= 109
-109 <= target <= 109
只会存在一个有效答案

2,程序代码

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 22 15:48:30 2021
Function:
@author: 小梁aixj
"""
def  twosum(nums, target):
    cache = {}
    i=0
    while i < len(nums):
        right = target - nums[i]
        if cache.get(right) is not None:
            return [cache[right],i]
        else:
            cache[nums[i]] = i
        i += 1
    return []
#%%
print(twosum([2,7,11,15], 9))
print(twosum([3,2,4], 6))
print(twosum([3,3], 6))

3,运行结果

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁辰兴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值