前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法刷题-回文数、找出小于平均值的数、旋转图像(C_C++)

算法刷题-回文数、找出小于平均值的数、旋转图像(C_C++)

作者头像
共饮一杯无
发布2023-02-10 09:54:08
3090
发布2023-02-10 09:54:08
举报

文章目录

回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

示例 1:

代码语言:javascript
复制
输入:x = 121
输出:true

示例 2:

代码语言:javascript
复制
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

代码语言:javascript
复制
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。

示例 4:

代码语言:javascript
复制
输入:x = -101
输出:false

提示:

  • -231 <= x <= 231 - 1
代码语言:javascript
复制
bool isPalindrome(int x)
{
    if (x < 0)
        return false;
    char r[11];
    int n = snprintf(r, 11, "%d", x);
    int i;
    for (i = 0; i < n / 2; i++)
    {
        if (r[i] != r[n - i - 1])
            return false;
    }
    return true;
}

找出小于平均值的数

从键盘输入一个正整数存入变量n中,再输入n个整数,然后找出所有小于平均值的数,并按输入顺序输出。 以下程序实现了这一功能,请你补全空白处内容:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int i, n, sum = 0, a[100];
    float ave;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
        sum += a[i];
    }
    ave = sum * 1.0 / n;
    for (i = 0; i < n; i++)
    {
        __________________;
    }
    return 0;
}
代码语言:javascript
复制
if (a[i] < ave)
	printf("%d", a[i]);

旋转图像

给定一个 _n _× n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在** 原地(https://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95)** 旋转图像,这意味着你需要直接修改输入的二维矩阵。**请不要 **使用另一个矩阵来旋转图像。

示例 1:

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[7,4,1],[8,5,2],[9,6,3]]

示例 2:

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
输入: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:

代码语言:javascript
复制
输入:matrix = [[1]]
输出:[[1]]

示例 4:

代码语言:javascript
复制
输入:matrix = [[1,2],[3,4]]
输出:[[3,1],[4,2]]

提示:

  • matrix.length == n
  • matrix[i].length == n
  • 1 <= n <= 20
  • -1000 <= matrix[i][j] <= 1000

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

代码语言:javascript
复制
#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];
				_________________________;
			}
		}
	}
};

答案:

代码语言:javascript
复制
matrix[i][j] = matrix[size - 1 - j][i];
matrix[size - 1 - j][i] = matrix[size - 1 - i][size - 1 - j];
matrix[size - 1 - i][size - 1 - j] = matrix[j][size - 1 - i];
matrix[j][size - 1 - i] = tmp;

本文内容到此结束了, 如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。 如有错误❌疑问💬欢迎各位指出。 主页共饮一杯无的博客汇总👨‍💻 保持热爱,奔赴下一场山海。🏃🏃🏃

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 回文数
  • 找出小于平均值的数
  • 旋转图像
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档