【学习笔记】C++每日一记[20240612]

给定两个有序的数组,计算两者的交集

给定两个有序整型数组,数组中 的元素是递增的,且各数组中没有重复元素。

第一时间解法:通过一个循环扫描array_1中的每一个元素,然后利用该元素去比较array_2中的每一个元素,如果array_1中的元素在array_2中出现,则将其加入交集。但是算法时间复杂度较高,需要二重循环来实现,其时间复杂度为 O ( n 2 ) O(n^2) O(n2)。没有利用“数组元素递增且没有重复元素”的条件。

常规和经典的解答:数组的二路并归法。
用变量i指向array_1的第一个元素,变量j指向array_2的第一个元素,然后执行下面的操作:
(1)如果array_1[i]等于array_2[j],则该元素是交集元素,将其放到insection数组中,然后执行i++,j++,继续 (1)、(2)、(3)的比较。
(2)如果array_1[i]大于array_2[j],则执行j++,然后重复(1)、(2)、(3)的比较。
(3)如果array_1[1]小于array_2[j],则执行i++,然后重复(1)、(2)、(3)的比较。
(4)一旦i等于数组array_1的长度,或者j等于数组array_2的长度,循环终止。最终数组intersection中的元素即为array_1和array_2的交集元素。


#include <iostream>
using namespace std;int getInter(int array_1[], int len_1, int array_2[], int len_2, int intersection[])
{int i = 0;int j = 0;int k = 0;int len = 0;while (i < len_1 && j < len_2){if (array_1[i] == array_2[j]){intersection[k] = array_1[i];i++;j++;k++;}if (array_1[i] > array_2[j]){j++;}if (array_1[i] < array_2[j]){i++;}}len = k;cout << "数据交集为:" << endl;for (int h = 0; h < len; h++){cout << intersection[h] << " ";}cout << "" << endl;return len;
}int main() 
{int array_1[5] = {2,5,6,8,9};int array_2[5] = {1,5,6,7,8};int len_1 = sizeof(array_1) / sizeof(array_1[0]);int len_2 = sizeof(array_2) / sizeof(array_2[0]);int intersection_len;int intersection[5];intersection_len = getInter(array_1, len_1, array_2, len_2, intersection);cout << "数据交集数量为:" << endl;cout << intersection_len << endl;cout << "done" << endl;return  0;
}

运行结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/26391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

采用沙普利值(Shapley value)实现了数据供给方报酬分配的公平性.

目录 采用沙普利值(Shapley value)实现了数据供给方报酬分配的公平性. 采用沙普利值(Shapley value)实现了数据供给方报酬分配的公平性. 采用沙普利值(Shapley value)实现数据供给方报酬分配的公平性,在交易模型中考虑参与个体的异质性与隐私保护,主要体现在以下几个方面…

遥控器无法点击AOSP Settings 的管理存储按钮 MANAGE STORAGE

前言 这里是遇到了MANAGE STORAGE的按钮使用遥控器移动的时候无法聚焦到这个按钮&#xff0c;自然也就无法点击。它只能聚焦到这一整个整体&#xff0c;因此我就设置当点击到这一整个整体时&#xff0c;就相应MANAGE STORAGE按钮的点击事件。 图片 代码 packages/apps/Setti…

探索在线问诊系统的安全性与隐私保护

随着远程医疗的普及&#xff0c;在线问诊系统成为医疗服务的重要组成部分。然而&#xff0c;随着医疗数据的在线传输和存储&#xff0c;患者的隐私保护和数据安全面临巨大挑战。本文将探讨在线问诊系统的安全性与隐私保护&#xff0c;介绍常见的安全措施和技术实现&#xff0c;…

图片转Excel表格:提升数据处理效率的利器

在日常工作和生活中&#xff0c;我们经常遇到各种数据和信息以图片的形式存在。有时&#xff0c;这些数据图片中包含了重要的表格信息&#xff0c;例如财务报告、统计数据或调研结果。为了对这些数据进行进一步的分析和处理&#xff0c;我们需要将其转换为可编辑的电子表格格式…

node 版本控制

官网下载 nvm 包 查看node和npm版本&#xff1a;https://github.com/coreybutler/nvm-windows/releases 2、查看nvm是否安装成功 nvm3、基本使用 1、查看当前node可用版本 nvm ls2、查看当前使用的node版本 nvm current3、安装指定node版本 nvm install 19.9.04、切换版…

构建 deno/fresh 的 docker 镜像

众所周知, 最近 docker 镜像的使用又出现了新的困难. 但是不怕, 窝们可以使用曲线救国的方法: 自己制作容器镜像 ! 下面以 deno/fresh 举栗, 部署一个简单的应用. 目录 1 创建 deno/fresh 项目2 构建 docker 镜像3 部署和测试4 总结与展望 1 创建 deno/fresh 项目 执行命令…

LeetCode 算法: 旋转图像c++

原题链接&#x1f517;&#xff1a; 旋转图像 难度&#xff1a;中等⭐️⭐️ 题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图…

5.冒泡+选择+插入+希尔

一、排序算法 排序基础 1.排序算法的稳定性 2.何为原地排序算法 1.冒泡排序 从下面第一个元素开始往上冒泡&#xff0c;一轮冒泡下来&#xff0c;最大的元素就去了最上面了 步骤&#xff1a;无序数组 每次冒泡都可以将最大的元素放到最右边去 第一轮比较了5次&#xff1a;…

开箱机特点与操作因素:深入剖析影响效率的关键因素

在现代化物流和生产流程中&#xff0c;开箱机作为一种自动化、高效率的设备&#xff0c;正逐渐成为企业提升工作效率、降低人工成本的得力助手。然而&#xff0c;要想充分发挥开箱机的性能优势&#xff0c;就必须深入了解其特点与操作因素&#xff0c;并准确把握影响效率的关键…

Navicat for MySQL 11软件下载附加详细安装教程

根据使用者情况表明Navicat Premium 能使你快速地在各种数据库系统间传输数据&#xff0c;或传输到一份指定 SQL 格式和编码的纯文本文件&#xff0c;计划不同数据库的批处理作业并在指定的时间运行&#xff0c;其他功能包括导入向导、导出向导、查询创建工具、报表创建工具、数…

Idea | Idea提交.properties文件乱码问题

这里 Transparent natice-to-ascii conversion 自动转换ASCII码 千万别勾选

第 5 章:面向生产的 Spring Boot

在 4.1.2 节中&#xff0c;我们介绍了 Spring Boot 的四大核心组成部分&#xff0c;第 4 章主要介绍了其中的起步依赖与自动配置&#xff0c;本章将重点介绍 Spring Boot Actuator&#xff0c;包括如何通过 Actuator 提供的各种端点&#xff08;endpoint&#xff09;了解系统的…

优雅迷人的小程序 UI 风格

优雅迷人的小程序 UI 风格

每日一题——Python实现PAT甲级1116 Come on! Let‘s C(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码点评 时间复杂度分析 空间复杂度分析 总结 我要更强 优化思路 优化…

全球首个光量子计算机生产线落地!量子计算机要量产了

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨娴睿/慕一 排版丨沛贤 深度好文&#xff1a;1000字丨5分钟阅 摘要&#xff1a;欧洲量子计算服务提供商Quandela以其创新的光量子比特生产技术&#xff0c;致力于推动量子计算的工业规模化…

三角剖分技术在AI绘画中的艺术与创新

引言&#xff1a; 随着人工智能技术的不断进步&#xff0c;AI绘画作为一种新兴的艺术创作方式逐渐进入人们的视野。它不仅改变了传统艺术创作的模式&#xff0c;还为艺术家和设计师提供了全新的工具。在AI绘画中&#xff0c;三角剖分技术扮演着至关重要的角色&#xff0c;它不仅…

ABeam News | ABeam德硕受邀参访建王设计,细化双方ESG合作可能点

0523 ABeam News 左起&#xff1a;ABeam大中华区董事长兼总经理中野洋辅、建王设计北京办公室总监田禾、建王设计北京办公室总经理王丽、ABeam中国ESG与可持续发展负责人杨丽楠、ABeam上海办公室王培培 建王 随着ESG&#xff08;环境、社会和治理&#xff09;理念近年来的持续…

Springboot的小型超市商品展销系统-计算机毕业设计源码01635

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

Lua解释器裁剪

本文目录 1、引言2、文件功能3、选择需要初始化的库4、结论 文章对应视频教程&#xff1a; 已更新。见下方 点击图片或链接访问我的B站主页~~~ Lua解释器裁剪&#xff0c;很简单~ 1、引言 在嵌入式中使用lua解释器&#xff0c;很多时候会面临资源紧张的情况。 同时&#xff0c…

以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的

本文基于 OpenJDK17 进行讨论 1. Reference 相关概念及其应用场景总览 Reference&#xff08;引用&#xff09;是 JVM 中非常核心且重要的一个概念&#xff0c;垃圾回收器判断一个对象存活与否都是围绕着这个 Reference 来的&#xff0c;JVM 将 Reference 又细分为几种具体的引…