代码随想录--977有序数组的平方
977 有序数组的平方
题目:
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
示例 1:
输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100]
排序后,数组变为 [0,1,9,16,100]
示例 2:
输入:nums = [-7,-3,2,3,11]
输出:[4,9,9,49,121]
提示:
1 <= nums.length <= 104-104 <= nums[i] <= 104nums已按 非递减顺序 排序
考点:
1、数组内元素排序
解法1:
暴力求解:数组内元素平方得到新数组,对新数组元素重新排序(依次从小到大),选择快排。
/*** Note: The returned array must be malloced, assume caller calls free().*/
#include <stdio.h>
#include <stdlib.h>
//比较两个整数,a是void*类型指针,强制类型转换(int *) a,需要比较数值大小,即(*(int*)a)解引用a,得到a指向的整数值
int cmp(const void* a, const void* b) { return (*(int*)a - *(int*)b); }int* sortedSquares(int* nums, int numsSize, int* returnSize) {//遍历原数组元素for (int i = 0; i < numsSize; i++) {nums[i] = nums[i] * nums[i]; // 元素平方}// 排序qsort(nums, numsSize, sizeof(int), cmp);//返回数组大小*returnSize = numsSize;return nums;
}
解法2:
双指针法:双指针从相反方向开始移动,i依次从左至右,j依次从右至左;比较i、j指向的数组元素平方值大小,较大者存放于新数组,新数组依次从右至左遍历。更新i、j数值。
/*** Note: The returned array must be malloced, assume caller calls free().*/
// 双指针法
// i依次从左至右遍历,j依次从右至左遍历
// 比较数组元素大小,寻找相对较大的元素
// 将较大元素依次从右至左存放于新数组int* sortedSquares(int* nums, int numsSize, int* returnSize) {// 创建两个指针int j = numsSize - 1;int i = 0;// 创建新的数据int* result = (int*)malloc(sizeof(int) * numsSize);// 遍历新的数组for (int index = numsSize - 1; index >= 0; index--) {// 存放原数组元素平方int left = nums[i] * nums[i];// 存放原数组元素平方int right = nums[j] * nums[j];// 比较左右指针数组元素大小if (left > right) {// 左指针数组元素存放于新数组result[index] = left;// 更新指针i++;} else {result[index] = right;j--;}}// 设置返回的数组大小*returnSize = numsSize;return result;
}
相关文章:
代码随想录--977有序数组的平方
977 有序数组的平方 题目: 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释&…...
Win11下搭建Kafka环境
目录 一、环境准备 二、安装JDK 1、下载JDK 2、配置环境变量 3、验证 三、安装zookeeper 1、下载Zookeeper安装包 2、配置环境变量 3、修改配置文件zoo.cfg 4、启动Zookeeper服务 4.1 启动Zookeeper客户端验证 4.2 启动客户端 四、安装Kafka 1、下载Kafka安装包…...
MacBook Pro M2安装deepseek
序 本文主要展示一下如何在MacBook Pro M2安装deepseek mac配置 芯片Apple M2,8核(物理),内存16G,os版本Ventura,磁盘500G 步骤 下载ollama 去https://ollama.com/下载mac版本 或者使用go来编译 git clone --depth 1 http…...
springboot的http请求不通原因
Spring Boot 应用中 HTTP 请求不通可能由多种原因引起,以下是一些常见问题及解决方法: 1. 端口冲突 问题:应用端口被占用。 解决:检查端口占用情况,修改 application.properties 或 application.yml 中的端口配置。 …...
【Windows】PowerShell 缓存区大小调节
PowerShell 缓存区大小调节 方式1 打开powershell 窗口属性调节方式2,修改 PowerShell 配置文件 方式1 打开powershell 窗口属性调节 打开 CMD(按 Win R,输入 cmd)。右键标题栏 → 选择 属性(Properties)…...
使用python脚本批量删除redis缓存
首先,安装 redis-py 库: pip install redis 其次,创建一个 Python 脚本来连接到 Redis 并删除匹配的键。假设 Redis 端口是 6379,密码是 mypassword(如果有密码的话)。 import redis# 连接到 Redis r r…...
Python截图轻量化工具
一、兼容局限性 这是用Python做的截图工具,不过由于使用了ctypes调用了Windows的API, 同时访问了Windows中"C:/Windows/Cursors/"中的.cur光标样式文件, 这个工具只适用于Windows环境; 如果要提升其跨平台性的话,需要考虑替换cty…...
Android图片加载框架Coil,Kotlin
Android图片加载框架Coil,Kotlin implementation("io.coil-kt:coil:1.4.0") import android.os.Bundle import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import coil.Coil i…...
重生之我要当云原生大师(十四)分析和存储日志
目录 一、简述常用的日志文件所存储的消息类型。 二、syslog的优先级? 三、维护准确时间的意义? 一、简述常用的日志文件所存储的消息类型。 1. 系统日志文件 /var/log/messages 消息类型:通用的系统日志文件,记录系统启动、…...
C++基础知识学习记录—补充
1、C新增的赋值语法 #include <iostream>using namespace std;int main() {//C新的赋值语法//1、传统的赋值语法int a,b;a100;b99;//C新的赋值语法int c(2);//相当于给c赋值2int d(c);//相当于把c的值赋值给dcout << "c" << c << endl;co…...
Linux常用命令——磁盘管理类
文章目录 du 查看文件和目录占用的磁盘空间df 查看磁盘空间使用情况free 显示内存占用情况lsblk 查看设备挂载情况mount/umount 挂载/卸载fdisk 分区Linux分区分区操作按键说明挂载硬盘操作 du 查看文件和目录占用的磁盘空间 ls-lh是查看文件大小du: disk usage 磁盘占用情况d…...
【AI学习】DeepSeek为什么强?
个人的一些思考,请大家批评指正。 这个问题,首先当然是在恰当的时间出现,模型性能跻身世界一流,又开源,戳破了OpenAI和英伟达潜心构造的叙事逻辑。 DeepSeek为什么强?四个方面:模型的智能水平…...
【快应用】原生广告下载状态监听案例
问题背景: 快应用中下载类原生广告监听下载状态变化接口调用没生效,在上报点击接口里触发下载监听后仅第一次返回状态,之后就不返回了,该如何处理? 问题分析: 快应用在1100版本新增了一个ad-button组件&a…...
C++语言的软件工程
C语言的软件工程 引言 在当今快速发展的技术领域,软件工程作为一门综合性的学科,越来越受到重视。而C语言,作为一种功能强大且具有广泛应用的编程语言,在软件工程中占据着重要的地位。本文将探讨C语言在软件工程中的应用与特点&…...
计算机网络结课设计:通过思科Cisco进行中小型校园网搭建
上学期计算机网络课程的结课设计是使用思科模拟器搭建一个中小型校园网,当时花了几天时间查阅相关博客总算是做出来了,在验收后一直没管,在寒假想起来了简单分享一下,希望可以给有需求的小伙伴一些帮助 目录 一、设计要求 二、…...
无人机避障——基于ESDF地图的JPS算法前端路径规划
原来是用栅格地图的方式,0表示可通行区域,1表示不可通行区域,然后采用JPS算法做路径规划,从起点到终点规划出一条路径。但是目前我需要做的是将栅格地图更换为ESDF地图,那么JPS算法计算代价的部分是否需要进行变化。 …...
【MQ】RabbitMQ 高可用延时功能的探究
延迟消息如果使用延时交换机来实现,如果数据量过大,就会很占 CPU 资源,轻则时间误差大,重则 RabbitMQ 宕机 一、针对一个 RabbitMQ 节点 (1)利用队列 ttl,将延迟消息根据 delay 的时间进行分级…...
Maven入门核心知识点总结
Maven 1. POM(Project Object Model)2. 坐标(Coordinates)3. 依赖管理(Dependency Management)4. 常用五个生命周期(Life Circle)5. Maven 仓库(Maven Repository&#x…...
【力扣】138.随机链表的复制
AC截图 题目 代码 使用哈希存储<旧节点,新结点> /* // Definition for a Node. class Node { public:int val;Node* next;Node* random;Node(int _val) {val _val;next NULL;random NULL;} }; */class Solution { public:Node* copyRandomList(Node* hea…...
编程语言的深度剖析:从语法到性能优化
引言 随着软件开发的不断进化,编程语言的选择对项目的成功与否具有关键影响。今天的开发者面临着丰富多样的编程语言选择:每一种语言都有独特的优势、特性和适用场景。然而,语言的设计理念、运行机制和优化技巧背后的技术细节却常常被忽视。本…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
