算法总结之 不重复打印排序数组中相加和为给定值的所有三元数组

《程序员代码面试指南》P351 不重复打印排序数组中相加和为给定值的所有三元组——java实现 不重复打印排序数组中相加和为给定值的所有三元组 题目描述: 给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序三元组。 示例1: 输入: arr = [-8,-4,-3,0,1,2,4,5,8,9],k=10 输出: -4,5,9 -3,4,9 -3,5,8 0,1,9 0,2,8 1,4,5 题目思路: 其实打印... 阅读详情

算法总结之 不重复打印排序数组中相加和为给定值的所有三元数组

 

这个问题跟上一个 大同小异,如何不重复打印呢? 

 首先保证选定三元数组中第一个值不重复,剩下的就跟前一个题目一样了。

 

package TT;

public class Test69 {

     public static void printUniqueTired(int[] arr, int k){
         
           if(arr==null || arr.length<3){
               return;
           }     
           for(int i =0; i<arr.length-2; i++){
               if(i==0 || arr[i] != arr[i-1]){
                   printRest(arr, i, i+1, arr.length-1, k-arr[i]);
               }
           }
         
     }
    
     public static void printRest(int[] arr, int f, int l, int r, int k){
         while(l<r){
             if(arr[l]+arr[r]<k){
                 l++;
             }else if(arr[l]+arr[r]>k) {
                 r--;
            }else{
                if(l==f+1 || arr[l-1] != arr[l]){  //f是用来做边界的控制问题解决
                    System.out.println(arr[f]+","+arr[l]+","+arr[r]);
                }
                l++;
                r--;
            }
         }
     }
    
    
     public  static void main(String[] args){
         
         int[] arr = new int[10];
            arr[0] = -8;
            arr[1] = -4;
            arr[2] = -3;
            arr[3] = 0;
            arr[4] = 1;
            arr[5] = 2;
            arr[6] = 4;
            arr[7] = 5;
            arr[8] = 8;
            arr[9] = 9;
            
            int k  = 10;
            printUniqueTired(arr, k);
         
     }
     
     
}

 

posted @ 2017-09-07 10:50 toov5 阅读( ...) 评论( ...) 编辑 收藏
Java-Study 基础环境搭建。 阅读详情

相关推荐

Tree-Ring Watermarks Fingerprints for Diffusion Images图像水印(树环水印,用于扩散图像的不可见且鲁棒的指纹)

高显著性:嵌入的水印可以可靠地被检测到,未嵌入水印的图像不会误判。鲁棒性:嵌入的水印对常见的图像处理(颜色抖动、模糊、噪声、旋转等)具有较强的抵抗能力。P值判断:通过计算 P值,可以定量地评估水印检测结果的显著性。1.基本含义消融实验(Ablation Study)是机器学习和深度学习研究中常用的一种方法,旨在通过移除或修改模型的某些组件或参数来分析其对整体性能的影响,从而更清楚地了解这些部分在模型中的作用和重要性。

weixin_74009895的博客 1577

程序员代码面试指南---004不重复打印排序数组中相加和为给定值的所有三元组

题目描述 给定排序数组arr和整数k,不重复打印arr中所有相加和为k的严格升序的三元组 例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为: -4 5 9 -3 4 9 -3 5 8 0 1 9 0 2 8 1 4 5 [要求] 时间复杂度为O(n^2),空间复杂度为O(1)。 输入描述 第一行有两个整数n, k 接下来一行有n个整数表示数组内的元素 输出描述 输出若干行,每行三个整数表示答案 按三元组从小到大的顺序输出(三元组大小

、思考致富的博客 432

QWEN 2.5模型结构解析与代码解读

对Qwen2.5大模型的代码进行研究

4368

不重复打印排序数组中相加和为给定值的所有三元组

给定排序数组arr和整数k,不重复打印arr中所有相加和为k的严格升序的三元组 例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为: -4 5 9 -3 4 9 -3 5 8 0 1 9 0 2 8 1 4 5 [要求] 时间复杂度为O(n^2)),空间复杂度为O(1) import java.util.*; public class Main { public static void main(String[] args){

Lily8888888的博客 585

CST Studio Suite安装详细教程(附安装包)CST Studio Suite 2024超详细安装教程

CST Studio Suite 2024安装指南摘要:本文详细介绍了CST Studio Suite 2024电磁仿真软件的下载与安装流程,包含23个图文步骤说明,从解压安装包到配置许可证服务器。重点提示了以管理员身份运行、自定义安装路径等关键步骤,并提供了常见问题解决方案和入门技巧。该软件适用于天线设计、PCB分析等高频电磁场仿真,安装后需通过localhost:27000连接许可证服务器完成激活。

pythonqiang9的博客 1万+

若依(RuoYi)项目里,Quartz定时任务踩坑实录:并发控制、事务回滚与异常处理

本文深入解析若依(RuoYi)项目中Quartz定时任务的并发控制、事务回滚与异常处理三大核心问题。通过实战案例揭示@DisallowConcurrentExecution注解的局限性和Redis分布式锁的应用,详细讲解Spring事务集成方案及多数据源事务管理,并提供生产级监控体系搭建指南,帮助开发者规避Quartz在生产环境中的常见陷阱。

weixin_28731223的博客 413

【论文精读】树环水印Tree-Ring Watermarks:隐形且稳健的扩散图像的指纹

傅里叶变换是一种数学变换,用于将时间或空间域的信号转换到频率域。其基本思想是将复杂的信号分解成一系列简单的正弦波(或余弦波)的叠加,每个正弦波具有特定的频率、振幅和相位。通过这种分解,可以更容易地分析和处理信号,尤其是在频率域内。我们不是将密钥直接印到高斯数组中,这可能会在结果图像中产生明显的图案,而是将密钥印到起始噪声向量的傅里叶变换中。然后使用标准扩散管道将该初始噪声矢量转换为图像,无需任何修改。树环水印通过在傅里叶变换的频域中精心选择秘钥k∗k^*k∗,结合二进制掩码MMM。

weixin_47748259的博客 3159

劳特巴赫 Trace32 调试使用教程

详细介绍如何使用trace32进行调试

m0_56208280的博客 4万+

每日算法——不重复打印排序数组中相加和为给定值的所有三元组

s

派大星的博客 689

10.Labview局部变量、全局变量、引用、属性节点、调用节点用法理解及精讲

本文的结构还是首先教大家明确概念问题,然后深入理解概念并学会使用,最后在理论基础掌握的基础上,通过实例来强化大家的理解。本文依旧是**先理论后实践**的教学方式,欢迎留言或私聊提问。

关注我,更多技术问题欢迎私聊~ 1万+

解决群晖NAS无法拉取docker镜像问题

在2024-06-01日以前,使用SSH登录后是可以直接拉取docker镜像的;但是之后当我们使用SSH登录上群晖NAS,使用【sudo -i】切换到超管拉取镜像会提示报错【error pulling image configuration: Get "https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/cf/cff6b68a194a672fd337d8728bfb252071012cce6

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2万+

程序员代码面试指南---003不重复打印排序数组中相加和为给定值的所有二元组

题目描述 给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序二元组 例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为: 1, 9 2, 8 [要求] 时间复杂度为O(n),空间复杂度为O(1) 输入描述 第一行有两个整数n, k 接下来一行有n个整数表示数组内的元素 输出描述 输出若干行,每行两个整数表示答案 按二元组从小到大的顺序输出(二元组大小比较方式为每个依次比较二元组内每个数) 示例1 输入: 10 10 -8

、思考致富的博客 266

《Autosar_MCAL高阶配置》总目录_培训教程持续更新中...

《Autosar_MCAL高阶配置》总目录_培训教程持续更新中...

「汽车电子助手」的博客 1万+

java打印数组中不重复的数字,不重复打印排序数组中相加和为给定值的所有三元组...

3#includeusingnamespacestd;intmain(){intn,k;cin>>n>>k;if(n<1)cout<<0<inta[n];for(inti=0;icin>>a[i];for(inti=0;iif(i==0||a[i]!=a[i-1]){intt=k-a[i];intl=i+1,...

weixin_39761822的博客 329

【雕爷学编程】Arduino动手做(111)---震动提醒模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

雕爷学编程 1898

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

不重复打印排序数组中相加和为给定值的所有二元组和三元组

//不重复打印排序数组中相加和为给定值的所有二元组和三元组 public class GetArrNum{ //(1)获得排序数组中为给定值的二元组 public static void GetArrNum2(int []arr,int k) { if(arr==null||k<arr[0]||arr.length<2) {

ZCC的专栏 647

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【Java入门到精通】*基础篇

Java入门教程摘要(1-6期) 本系列从零讲解Java,基于Java 8 LTS版本。 Java历史与特性:1995年Sun公司发布,以跨平台、面向对象为核心优势,应用于后端、安卓、大数据等领域。 跨平台原理:通过JVM将字节码转换为机器码,实现"一次编写,到处运行"。 环境组件:JDK(开发工具包)⊃ JRE(运行环境)⊃ JVM(虚拟机),开发需安装JDK。 安装配置:提供Windows/Mac的JDK安装指南,强调路径无中文/空格。 环境变量:设置JAVA_HOME指向JDK路径,Path添加bin

2301_81248642的博客 932

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C++提高编程

学习目标:vector中存放自定义数据类型,并打印输出//自定义数据类型public:mAge = age;//存放对象//创建数据it!= v.end();it++) {//放对象指针//创建数据it!= v.end();test02();return 0;

丰锋的博客 352

C语言从入门到进阶(个人笔记细节版)鲍松山老师课程

《C语言入门基础笔记》摘要 本文是C语言基础入门教程,包含以下核心内容: 开发环境:推荐VS2026/Dev-C++/CodeBlocks编译器 基础语法:首个C程序结构、数据类型(整型/浮点型)及存储大小 输入输出:printf/scanf函数详解,格式化输出技巧 进制转换:二进制/八进制/十进制/十六进制互转方法 变量常量:定义、命名规则、作用域及const与#define区别 实用技巧:VS编译器问题解决方案、格式化输出控制、浮点精度处理 配套练习:包含日期反向输出、进制转换等实践题目 笔记采用渐进式

一起学习编程知识 585

哈佛 CS50 系列课程 2024 2025 笔记(五)

监督学习是一种特定类型的任务。它指的是我们给计算机提供数据访问权限的任务,这些数据由输入-输出对组成。我们希望计算机能够找出某个将输入映射到输出的函数。因此,我们拥有大量数据,这些数据通常包含某种输入、某些证据或计算机将有权访问的某些信息。我们希望计算机基于这些输入信息来预测某个输出是什么。我们会给它一些数据,以便计算机可以开始在其模型上进行训练,开始理解这些信息如何工作,以及输入和输出之间如何相互关联。但最终,我们希望我们的计算机能够找出某个函数,给定这些输入,能够得出那些输出。

龙哥盟 134

python3 核心笔记

本文主要是针对python3的一些核心要点做一些记录,感兴趣的可以关注和订阅。会持续更新,这个玩意学习一下,可以为数据分析和AI打下一定的基础。

yanghuashuiyue的专栏 625

不重复打印排序数组中相加和为给定值的所有二元组

给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序二元组 例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为: 1, 9 2, 8 [要求] 时间复杂度为O(n),空间复杂度为O(1) import java.util.*; public class Main { public static void main(String[] args){ Scanner in =new Scanner(System

Lily8888888的博客 233

数组与矩阵---不重复打印排序数组中相加和为给定值的所有二元组和三元组

【题目】  给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序二元组。例如,arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9],k = 10,打印结果为:1,9 2,8【补充题目】  给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序三元组。例如,arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9],k = 1

冰殇的博客 881

【牛客】不重复打印排序数组中相加和为给定值target的所有三元组

题目描述 给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序三元组。 例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为: -4 5 9 -3 4 9 -3 5 8 0 1 9 0 2 8 1 4 5 [要求] 时间复杂度为O(n^2),空间复杂度为O(1) 输入描述: 第一行有两个整数n, k 接下来一行有n个整数表示数组内的元素 输出描述: 输出若干行,每行三个整数表示答案 按三元组从小到大的顺序输出(三元组大小比较方式为

weixin_42956047的博客 491
上一篇: 算法总结之 不重复打印排序数组中相加和为给定值的所有二元数组
下一篇: 算法总结之 未排序正数数组中累加和为给定值的最长子数组长度
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值