给定一个值S,在有序数组中找出两个元素A和B,使 A+B = S.

【ZZULIOJ】1124: 两个有序数组合并 ZZULIOJ题解 1124: 两个有序数组合并 题目描述 已知数组a中有m个按升序序排列的元素,数组b中有n个降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。 输入 输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。 输出 输出合并后的m+n个整数,数据之间用空格隔开。输出占一行。 样例输入 4 1 2 5 7 3 6 4 2 样例输出 7 6 5 4 2 2 1 提示 试图排序的孩子们 阅读详情

在网上看到过一个面试题,感觉挺有意思,看别人的代码写的逻辑不够谨慎,重写了一个,较真了又。。。

package com.array7.algorithm;

public class AlgorithmTest {
	public static void main(String[] args) {
		int[] arr = {2 ,4 ,5 ,8 ,10 ,12 ,13 ,16 ,17,Integer.MAX_VALUE };
		int sum = 13;
		String result = getSumElements(arr,sum);
		System.out.println(result);
		
		int[] arr2 = {-21 ,-20 ,-15 ,-4 ,-1 ,0 , 2, 13 ,16 ,17,Integer.MAX_VALUE };
		int sum2 = -13;
		result = getSumElements(arr2,sum2);
		System.out.println(result);
	}
	
	public static String getSumElements(final int[] arr, final int sum) {
		if (arr == null || arr.length < 2) {
			throw new IllegalArgumentException("参数不合法...");
		}
		
		int min = 0;
		int max = arr.length - 1;
		long tempSum = 0L;
		String result = "not found";
		while (min < max) {
			tempSum = new Long(arr[min]) + new Long(arr[max]);	// 防止数值溢出,保证数据健壮性
			if (tempSum > sum) {
				max--;
			} else if (tempSum < sum) {
				min++;
			} else {
				result = arr[min] + "," + arr[max];
				break;
			}
		}
		
		return result;
	}
}


【编程】把两个有序数组合并成一个有序数组 #include <iostream> #include <vector> #include <algorithm> using namespace std; int *sortArr(int* stra, int lena, int* strb, int lenb){ if(stra == nullptr || strb == nullptr) re... 阅读详情

相关推荐

【技术实战】SeaTunnel 实现 HTTP 到 Doris 数据同步的配置优化与问题解决

本文分享了使用SeaTunnel实现HTTP数据源到Doris数仓同步的实战经验。详细解析了从环境搭建、核心配置到生产部署的全流程,重点针对数据类型映射、分页拉取、依赖冲突等典型问题提供了解决方案,并给出了连接参数调优、错误处理等进阶优化技巧,帮助开发者构建稳定高效的数据同步管道。

gan8painter的博客 759

每天写一点代码----连续子数组乘积最大

问题描述: 给定一个n个元素的数组,数组元素全部为整数,负数,正数和0均有可能存在, 设设计一个算法,找出连续的几个数组元素相乘积最大。 思路: 用动态规划很。问题的关键是,序列中有正数也有负数,所以,需要记录最大值,也要记录最小值。 Java代码: public class MaxMulArr { public static double maxMul(double[

如竹的技术博 1427

ESP32系列之LVGL(四):输入设备(外部按键)对接

本文详细介绍了如何在ESP32上使用LVGL库对接外部按键作为输入设备,包括硬件连接、驱动层实现和LVGL输入设备移植。通过具体代码示例和实战案例,帮助开发者快速实现按键控制UI界面,解决常见问题如按键无反应和控件跳转不正常。

weixin_30907935的博客 242

oracle找出数据中最小差值,找出一个数组中两个数的最大差值和最小差值(最接近的数)...

首先,描述一下题目。编写一个程序在给定含有N个int值得数组a[],在其中找到一对最接近的值:两者之差最大的两个数。时间复杂度要求线性级别的。比如下面这个数组,首先它时无序的。我们该怎么处理呢?10153879123005假设:我们先用a[0]和a[1]比较,记录下差值,和最小的数。int min = Math.min(a[0], a[1]); int value = Math.abs(a[1...

weixin_39625747的博客 893

数据结构:五岔路口交通管理红绿灯设计

我们可以知道这是一个“图”的着色问题,首先要考虑,为什么可行路线是13条?当然可以通过穷举得出,如果用公式:则是: 或者 因为一条路线必须包括一出一进两个方向 第一种答案的解法: 一、固定E为入口,则有C_4^1=4的可能; 二、除去E(因为E只有一个入向),剩下ABCD四个路口,然后因为C只有一个出方向,所以从剩下 的ABD中选择一个入口,即C_3^1; 三、再从剩下的三个出口任选

潘猫猫的世界 1万+

安卓无障碍服务保活实战:如何用AccessibilityService实现后台常驻(附完整代码)

本文深入解析如何利用Android无障碍服务(AccessibilityService)实现后台服务保活,涵盖多版本系统适配、前台服务集成、开机自启机制等关键技术。通过详细的Kotlin代码示例和合规性指导,帮助开发者构建稳定可靠的后台服务解决方案,同时避免因滥用无障碍服务导致的应用下架风险。

milk5的博客 1077

数组 && 链表

数组 应用场景: 1)数据比较少 2)经常做的运算是按序号访问数据元素 面试题 选择题: 1)对于长度为n的线性表,建立其对应的单链表的时间复杂度为()。 O(1) O(log2n) O(n) O(n^2) 2)下列哪些不是线性表? 队列 栈 关联数组 链表 3)稀疏矩阵一般的压缩存储方法有两种,即() 二维数组和三维数组 三元组和散列 三元组和十字链表 散列和十字链表 4)将10阶对称矩阵压缩存...

领导的博客 439

Android T GPS 定位流程

Gps 定位

好记性不如烂笔头 1357

关于数组的几道面试题

关于数组的几道面试题  分类: C/C++     数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考,如果您有更好的题目或者想法,欢迎留言讨论。目前有以下18道题目,如有好的题目,随时更新。  数组求和 求数组中的最大值和最小值 求数组中的最大值和次大值 求数组中出现次数超过一半的元素 求数组中元素的最短距离 求两个有序数组的

nbfcome的专栏 1198

Python + OpenCV 计算视频中运动最慢小球的坐标验证码

本文提出一种基于Python和OpenCV的视频分析方法,用于检测多个运动小球中最慢运动目标的坐标。方法主要包括:1) 通过背景差分和形态学处理提取运动前景;2) 基于轮廓面积和圆形度筛选候选小球;3) 利用图像矩计算小球质心坐标;4) 通过近邻关联构建运动轨迹;5) 根据轨迹平均速度确定最慢目标。该方法能有效处理包含线条干扰和静态大圆干扰的背景,稳定输出最慢小球的中心坐标。实验结果表明,该方法能准确识别运动最慢的小球并定位其位置。

码王吴彦祖的博客 116

DataCastle-租金预测

ID:编号;时间:房屋信息采集的时间;小区名:房屋所在小区,已脱敏处理;小区房屋出租数量:小区出租房屋数量,已脱敏处理;楼层:0、1、2分别表示楼层低,中,高;总层数:房屋所在建筑的总楼层数,已脱敏处理;房屋面积:房屋面积数值,已脱敏处理;房屋朝向:房屋的朝向;居住状态:房屋的居住状态,表示是否已出租或居住中,已脱敏处理;卧室数量:户型信息,数字表示卧室的个数;卫的数量:户型信息,数字表示卫生间的个数;厅的数量:户型信息,数字表示厅的个数;

优快云 精品推荐 3458

给定一个整数sum, 从有N个有序元素的数组中寻找元素a,b,使得a+b的结果最接近sum

class FindClosestPairExample { public static void findAndPrintClosest(int[] arrayOne, int expectedSum) { int lenOne = arrayOne.length; //数组长度,默认全部填满。 int diff = Intege

Java 之 道 8422

保研考研机试攻略(满分篇):第二章——满分之路上(1)

保研考研机试攻略(满分篇):第二章——满分之路上(1)2.1计算机和基础+2.2进阶背包问题+2.3毛毛虫算法

qq_63349644的博客 1195

求两个有序数组两两相加的值最小的K个数

题目描述: 有两个大小分别是lenA和lenB的数组A,B,它们元素的按非递减有序排列,找出这样的k个最小的(ai + bj) ,其中 0 例如对于: A = 1,2,3,4 B = 2,3,4,5 ai+bj的所有组合有4*4 = 16个,如下图: b\a 1   2   3   4 2   3   4   5   6 3   4   5  

记录成长中的点点滴滴 2797

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

两个有序数组元素之积、和的最小K个值

题目来自阿里面试题目 题目 (1)已知A B两个数组,元素有序,构造新的集合S={x*y | x属于A, y属于B} 求S中最小的k个元素,最优解法。 (2)已知A B两个数组,元素有序,构造新的集合S={x+y | x属于A, y属于B} 求S中最小的k个元素,最优解法。 思路:这两个题本质上属于同一个题目,可以使用同一个思路做。 思路(1) 暴力解决,此时时间

那些年....的专栏 2265

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

leetcode-----有两个大小分别为m和n的有序数组A和B。请找出这两个数组的中位数。你需要给出时间复杂度在O(log (m+n))以内的算法。

题目描述 有两个大小分别为m和n的有序数组A和B。请找出这两个数组的中位数。你需要给出时间复杂度在O(log (m+n))以内的算法。 /* ** 获取两个数组的中位数 */ public double findMedianSortedArrays(int[] A, int[] B) { int m = A.length;//数组A的长度 int n = B.length;//数组B的长度 int l = (m+n+1)/2; int r

sunnnnh的博客 1399

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

面试题41:有序数组,查找和为s的两个元素and 和为s的连续数字

第一个问题:有序数组查找和为s的两个元素 方法:需要两个指针分别指向开头和结尾, 当*开头+*结尾 > s时,需要--结尾 当*开头+*结尾 直到两个指针碰头为止,代码如下 #include using namespace std; bool find_pair_for_s(int list[], int n, int s, int* index1, int* index2){

a1159977673的专栏 606

有序数组中找两个数a,b,给定sum 使得sum=a+b,a*b最小,某大厂面试题

例如 1,2,3,4,5,6,8,9 给定5,可以找到2+3=5,1+4=5,而1*4=4最小,故返回下标0,3 因为数组有序,一般会考虑到二分查找,具体算法如下 def find1(arr,s): if len(arr)<=2: print("input error") exit() min=10000000 index1=-1 index2=-1 low=0 high=len(arr)-1 while(l

weixin_43997764的博客 352

c语言元素累积的计算,C语言:计算输出给定数组中每相邻两个元素的平均值的平方根之和。...

//计算输出给定数组中每相邻两个元素的平均值的平方根之和。#include #include double fun(double x[]){double a,b,s=0.0;for (int i = ; i < ;){//a = (x[i++] + x[i]) / 2;//不可以这样使用,同一条语句中,i相当于还没有改变。a = x[i];a+=x[++i];a /= ;b = sqrt...

weixin_36443053的博客 1123

2021-07-30:两个有序数组间相加和的Topk问题。给定两个有序数组arr1和arr2,再给定一个整数k,返回来自arr1和arr2的两个数相加和最大的前k个,两个数必须分别来自两个数组。按照降

2021-07-30:两个有序数组间相加和的Topk问题。给定两个有序数组arr1和arr2,再给定一个整数k,返回来自arr1和arr2的两个数相加和最大的前k个,两个数必须分别来自两个数组。按照降序输出。[要求]时间复杂度为O(klogk)。 福大大 答案2021-07-30: 1.左神方法。大根堆。 时间复杂度:O(klogk)。 空间复杂度:O(k)。 2.我的方法。小根堆。两个有序数组构成一个二维数组。然后从右下往左上遍历,当遍历数量大于等于k时,停止遍历。见图。 时间复杂度:略大于O(k)。 空

福大大架构师每日一题 2万+

AcWing - 数组元素的目标和(双指针)

题目链接:https://www.acwing.com/problem/content/description/802/ 时/空限制:1s / 64MB 题目描述 给定两个升序排序的有序数组A和B,以及一个目标值x。数组下标从0开始。 请你求出满足A[i] + B[j] = x的数对(i, j)。 数据保证有唯一解。 输入格式 第一行包含三个整数n,m,x,分别表示A的长度,B的长度以及...

ityanger的技术栈 2894

归并排序C++代码实现(将两个有序数组元素依次比较合并为一个新的有序数组)

@归并排序C++代码实现(将两个有序数组元素依次比较合并为一个新的有序数组) 归并排序分为两个大的步骤,分为划分和归并。归并是将两个有序数组分别为数组A和数组B合并成为一个有序数组,首先取数组A和数组B的第一个元素进行比较,将其中较小的元素放入新的数组中,然后再取出较小元素数组中的下一个元素与另一个数组中的第一个元素进行比较,依然将两者较小的元素放入新的数组中,如此迭代下去,直到将两个数组合并完毕...

u014114763的博客 4794

leetcode-合并两个有序数组

文章目录题目解答优秀解答 题目 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m...

lingle1的博客 684

求两个有序数组合并后的第K大元素

若该元素不在数组A中,则一定在数组B中,所以我们先假设该元素在数组A中,在A中进行寻找,当数组A中寻找失败时,再在数组B中寻找即可。使用上述算法进行寻找时,可以发现,我们的每次寻找都在逐步缩小范围,每次缩小为原来范围的一半,算法复杂度分析为。,当在数组A中寻找失败时,按照相同的方法在数组B中进行寻找,即可完成最终的任务。使用二分法在数组A中持续寻找,最后可能没有寻找到时,返回寻找失败,流程图中返回。大元素时,若该元素在数组A中,则该满足公式(1)和公式(2)的同时,满足。满足公式(1)、(2)、(3)。

qq_48346772的博客 411
上一篇: MyBatis 3源码分析
下一篇: Windows下Cygwin添加右键菜单
七郎
博客等级 码龄14年 31粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值