​LeetCode解法汇总2475. 数组中不等三元组的数目

news/2024/7/5 4:05:35

 目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:

力扣
描述:

给你一个下标从 0 开始的正整数数组 nums 。请你找出并统计满足下述条件的三元组 (i, j, k) 的数目:

  • 0 <= i < j < k < nums.length
  • nums[i]nums[j] 和 nums[k] 两两不同 。
    • 换句话说:nums[i] != nums[j]nums[i] != nums[k] 且 nums[j] != nums[k] 。

返回满足上述条件三元组的数目

示例 1:

输入:nums = [4,4,2,4,3]
输出:3
解释:下面列出的三元组均满足题目条件:
- (0, 2, 4) 因为 4 != 2 != 3
- (1, 2, 4) 因为 4 != 2 != 3
- (2, 3, 4) 因为 2 != 4 != 3
共计 3 个三元组,返回 3 。
注意 (2, 0, 4) 不是有效的三元组,因为 2 > 0 。

示例 2:

输入:nums = [1,1,1,1,1]
输出:0
解释:不存在满足条件的三元组,所以返回 0 。

提示:

  • 3 <= nums.length <= 100
  • 1 <= nums[i] <= 1000

解题思路:

* 解题思路:

* 通过三层for循环,每次遍历添加一个数字,看是否存在重复的数字,如果存在则跳过

代码:

/**
 * 2475. 数组中不等三元组的数目
 * 解题思路:
 *
 */
class Solution2475
{
public:
    int unequalTriplets(vector<int> &nums)
    {
        set<int> mset;
        int abs = 0;
        for (int i1 = 0; i1 < nums.size(); i1++)
        {
            mset.insert(nums[i1]);
            for (int i2 = i1 + 1; i2 < nums.size(); i2++)
            {
                if (mset.find(nums[i2]) != mset.end())
                {
                    continue;
                }
                mset.insert(nums[i2]);
                for (int i3 = i2 + 1; i3 < nums.size(); i3++)
                {
                    if (mset.find(nums[i3]) != mset.end())
                    {
                        continue;
                    }
                    abs++;
                }
                mset.erase(nums[i2]);
            }
            mset.erase(nums[i1]);
        }
        return abs;
    }
};


http://lihuaxi.xjx100.cn/news/1240466.html

相关文章

window Cmake开发环境搭建

背景 最近的项目需要从linux转战至Windows。因为之前的项目都是在linux环境下开发的&#xff0c;代码也是通过CMAKE编译。攻欲善其事&#xff0c;必先利其器。首先要考虑的是如何在Windows环境下使用cmake编译代码。 另外一个就是IDE的选择了&#xff0c;相比于动辄 好几个G的…

彻底删除的文件还能恢复吗?试试它

在我们使用电脑时&#xff0c;不可避免地会遇到需要删除某些文件的情况。当我们使用“删除”键或者右键菜单中的“删除”选项时&#xff0c;文件并没有被完全删除&#xff0c;而是被移动到了回收站中。如果我们想要恢复这些文件&#xff0c;只需要打开回收站&#xff0c;找到对…

paddleseg模型解说——fcn

fcn_hrnetw18_voc12aug_512x512_40k.yml 配置文件定义了一个最基本的FCN网络。 #模型信息 model:#模型的类型FCNtype: FCN#使用的主干网络为HRNet backbone:type: HRNet_W18#主干网络的预训练模型的下载地址。pretrained: https://bj.bcebos.com/paddleseg/dygraph/h

3. SpringCloudAlibaba、nacos 实现配置中心

一、微服务中配置文件的问题 1.1 配置文件的问题&#xff1a; 配置文件的数量会随着服务的增加持续递增单个配置文件无法区分多个运行环境配置文件内容无法动态更新&#xff0c;需要重启服务 1.2 引入配置中心 引入配置中心&#xff1a;刚才架构就会成为这样。是由配置中心统…

软测量技术论文

软测量技术论文篇一 软测量技术在污水处理中的应用 摘要&#xff1a;近年来软测量技术的研究主要是基于人工神经网络&#xff0c;它对非线性问题有较好的处理能力&#xff0c;对求解结果有较好的泛化能力&#xff0c;由于实际生活中严格意义上的线性系统并不多见&#xff0c…

SIFT算法

文章目录 1. SIFT算法简介1.1 SIFT特征检测步骤1.2 SIFT算法的特点 2. SIFT算法原理2.1 尺度空间2.1.1 多分辨率金字塔2.1.2 高斯金字塔2.1.3 高斯尺度空间&#xff08;使用不同的参数&#xff09; 2.2 DoG空间极值检测&#xff08;查找关键点&#xff09;2.3 删除不好的极值点…

报表工具Stimulsoft Reports用户手册:如何激活控件

Stimulsoft Reports.Net是一个基于.NET框架的报表生成器&#xff0c;能够帮助你创建结构、功能丰富的报表。StimulReport.Net 的报表设计器不仅界面友好&#xff0c;而且使用便捷&#xff0c;能够让你轻松创建所有报表&#xff1b;该报表设计器在报表设计过程中以及报表运行的过…

微服务学习笔记--高级篇--(Redis主从)

Redis主从 搭建主从架构主从数据同步原理 搭建主从架构 单节点Redis的并发能力是有上限的&#xff0c;要进一步提高Redis的并发能力&#xff0c;就需要搭建主从集群&#xff0c;实现读写分离。 搭建主从架构 1.1集群结构 共包含三个节点&#xff0c;一个主节点&#xff0c…