当前位置: 首页 > article >正文

C语言——双指针法求有序数组的平方

代码

#include <stdio.h>
#include <stdlib.h>
int* sortedSquares(int* nums, int numsSize)
{
    int left = 0;
    int right = numsSize - 1;
    int* ans = (int*)malloc(sizeof(int) * numsSize);
    int index;
    for (index = numsSize - 1; index >= 0; index--)
    {
        int lsquare = nums[left] * nums[left];
        int rsquare = nums[right] * nums[right];
        if (lsquare > rsquare)
        {
            ans[index] = lsquare;
            left++;
        }
        else
        {
            ans[index] = rsquare;
            right--;
        }
    }
    for (int i = 0; i < numsSize; i++)
    {
        printf("%d ", ans[i]);
    }
    free(ans);
}
int main()
{
    int numsSize;
    scanf_s("%d", &numsSize);
    int* nums = (int*)malloc(sizeof(int) * numsSize);
    if (nums == NULL)
    {
        return 1;
    }
    else
    {
        for (int i = 0; i < numsSize; i++)
        {
            scanf_s("%d", nums + i);
        }
    }
    sortedSquares(nums, numsSize);
    free(nums);
    return 0;
}

结果


http://www.kler.cn/a/304380.html

相关文章:

  • MySQL远程连接错误解决:Host is not allowed to connect to this MySQL server
  • OSS文件上传
  • 准确--FastDFS快速单节点部署
  • Django 详细入门介绍
  • Ubuntu 的 ROS 操作系统turtlebot3环境搭建
  • 希尔排序(C语言)
  • Linux:五种IO模型
  • 学习笔记 韩顺平 零基础30天学会Java(2024.9.13)
  • 智能听诊器:打造宠物个性化健康生活
  • 数学基础 -- 概率统计之高斯分布
  • 后端开发刷题 | 把数字翻译成字符串(动态规划)
  • Linux sh命令
  • 【Linux】深刻理解操作系统的管理
  • 若依plus- cloud RuoYiGatewayApplication :8080/(ruoyi-gateway)启动不了,报错!
  • 鸿蒙 - 判断手机号、身份证(正则表达式)
  • CMake构建学习笔记16-使用VS进行CMake项目的开发
  • 计算机组成原理(第二次笔记)
  • PHP高效协同无缝对接一站式生产管理系统小程序源码
  • 深入理解指针(二)
  • vue3里根据配置信息显示el-button的问题
  • iOS中的链表 - 单向链表
  • 多核DSP(6000系列)设计与调试技巧培训
  • 【案例70】invalid secrity token(null)
  • 【SpringBoot】调度和执行定时任务--DelayQueue (附demo)
  • STM32——看门狗通俗解析
  • 【Linux网络】详解TCP协议(1)