给定一个整数数组,数组中有正负数随机分布,要求将正数负数间隔分布,且不改变其原来的顺序。

【编程之法】2.6 不改变正负数相对顺序的重新排列 题目描述 给定一个未排序的整数数组,数组中的元素有正数也有负数,要求对数组中的元素进行重新排列,使得负数排在正数的前面,并且不改变原来正数和负数之间的相对顺序。例如,如果输入是{1,7,-5,9,-12,15},则输出是{-5,-12,1,7,9,15}。要求时间复杂度为O (n),空间复杂度为O(1)思路描述 由于不改变相对顺序,可以参考之前字符串中字符移动的代码,具体实现如下 阅读详情

给定一个整数数组,数组中有正负数随机分布,要求将正数负数间隔分布,且不改变其原来的顺序。

例如【1, 2, 3, -2, -4, -6, 7, 8】 => 【1,-2, 2, -4, 3, -6, 7, 8】

思路1:开辟一个O(n)的空间,定义两个下标,一个指向正数,一个指向负数,分别按照正负的顺序push_back到新数组里面即可;

思路2:不开辟0(n)的空间,先对原数组进行一个操作,将正数排在负数的后面,然后依次挪动负数即可;思路二代码如下:

//给一个有正负数的数组,让正数排在负数前面,并保证有顺序输出
int pn(std::vector<int>& arr) {
    int i, j = 0,temp,k;

    for(int i = 0; i < arr.size(); ++i) {
        if(arr[i] > 0) {
            temp = arr[i];
            for(k = i; k > j;--k) {
                arr[k] = arr[k-1];
            }
            arr[j] = temp;
            j += 1;
        }
    }

    for(auto i : arr)
        std::cout << i << " ";
    std::cout << std::endl;
    std::cout << "********************" << std::endl;

    return left;
}

void pnInterval(std::vector<int>& arr) {
    int n = pn(arr);
    if(n < 2)
        return;
    int k = 1;
    std::cout << "
【算法题】输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为o(n)。 题目: 输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为o(n)。 例如输入的数组为{1, -2, 3, 10, -4, 7, 2, -5},和最大的子数组为{3, 10, -4, 7, 2},因此输出为该子数组的和18 首先把主函数写出来 int main() { //输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。 //要求时间复杂度为o(n)。例如输入的数组为{1 阅读详情

相关推荐

【字节(北京)AML图计算算法实习生】面试经历

前言 某一天,我偶然在群里发现了一个字节AI Lab图算法的实习生内推,于是便整了整简历,投了过去。字节hr小姐姐的速得很快,1小时候就给我打电话了,约了一下一面的时间。和亚马逊不太一样,必须是一面通过之后才是二面。 一面(2021.7.13 18:00~18:45) 面试是在牛客平台上的视频面试,面试官是个精神小伙。 一开始先进行了自我介绍。然后面试官马上就开始问OGB冲榜的事情了。先让我简单介绍了一下这个项目,显然是比较感兴趣,问了一些细节问题。有一个问题是,node2vec Embedding能够提升

智慧的旋风的博客 3560

大模型微调框架之TRL

近年来,大语言模型(LLMs)的快速发展推动了下游应用的繁荣,但如何高效地对这些模型进行对齐和微调,依然是研究与应用的热点。Hugging Face 开源的 TRL(Transformer Reinforcement Learning) 框架,提供了基于强化学习的语言模型训练方法,并支持 SFT(监督微调)、PPO(近端策略优化)、DPO(直接偏好优化)等多种方式,是目前对齐和微调 LLM 的重要工具。

和大家一起涨芝士 905

tkinter表格进阶:5分钟实现CSV数据可视化编辑界面(含右键菜单配置)

本文详细介绍了如何使用Python的tkintertable库快速构建CSV数据可视化编辑界面。通过导入导出CSV数据、深度定制右键菜单(如复制、插入行、删除行)以及实现单元格验证等进阶功能,开发者能在5分钟内创建一个可嵌入自动化流程的专业级桌面数据编辑工具,显著提升数据处理效率。

931

(一)Tushare Pro教程:股票基本数据接口

 一直使用tushare作数据源,这里开个教程大家一起学习。 一、介绍        tushare是一个python股票数据源,现已升级到tushare pro版本,新版本在数据稳定性和获取速率上大幅提升。与wind、东财等收费数据源相比,tushare pro算是金融数据界的良心之作,其为从事金融工程、量化研究等方向的同学们提供了便利。tushare pro还有一点突出的特色就是已经将股票...

虎毛的博客 4万+

YOLOv11 快速入门指南 | 10分钟吃透网络结构与新特性

2024 年 9 月 30 日,Ultralytics 发布了 YOLOv11,这是继 YOLOv8、v9、v10 之后的最新一代实时目标检测模型。 与前几代相比,YOLOv11 在保持“单阶段、实时、端到端”三大基因的同时,带来了两大核心升级:一句话总结:YOLOv11 = 更快 + 更准 + 更少参数。 2.2 微观单元:C3k2 与 C2PSA 2.2.1 C3k2 模块 作用:替换 YOLOv8 的 C2f,做跨阶段局部特征融合。 核心代码(ultralytics/nn/modules/block

shrgegrb的博客 1407

关于 SAP Fiori Elements 开发项目里的本地 annotation.xml 文件

文件通过引用 SAP 提供的标准词汇表和本地 OData 服务的元数据,为 Fiori Elements 应用定义了一个基础的注解结构。开发者可以在此基础上添加具体的注解,以满足特定的业务需求和界面定制。文件用于定义本地注解,以补充或覆盖来自后端 OData 服务的元数据。元素内添加具体的注解,以定制 Fiori Elements 应用的界面和行为。的架构,用于在本地注解中定义实体、类型和注解。这使得在本地注解中可以引用该 OData 服务的实体和类型。等,用于控制界面元素的显示和行为。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 475

【TRAE调教指南之MCP篇】Context 7 MCP:让AI永远拥有最新技术文档

【TRAE调教指南之MCP篇】Context 7 MCP:让AI永远拥有最新技术文档

funfan的博客 1314

5实践报告撰写

一 项目流程 明确标准 确定分析目标 寻找分析数据 清洗数据 描述性分析 诊断性分析 提出建议 撰写报告 二 确定分析目标 什么是你感兴趣的? 什么是你熟悉的? 什么是你擅长的? 1 电商零售行业 商品销量分析 价格分析 评价分析 ...... 2 自媒体行业 广告投放力度分析 广告投放回报分析 不同类型的产品分析 ...... 3 金融行业 股票价格分析 信贷业务违约分析 客户画像分析 ...... ...

waywardG的博客 2833

Camunda 7.x 系列【62】启动流程实例源码解析

为了更好的了解Camunda,接下来我们简单分析下启动流程实例相关源码

记录知识、锤炼自我 1174

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: 两个QListWidget相互拖拽item,并删除对应的item
下一篇: 利用c++设计实现一个LRU缓存
XuSheng.Mrs
博客等级 码龄9年 29粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值