LeetCode 网易-1. 分割环(前缀和 + 哈希)
文章目录
- 1. 题目
- 2. 解题
1. 题目
小易有 n 个数字排成一个环,你能否将它们分成连续的两个部分(即在环上必须连续),使得两部分的和相等?
输入描述:
第一行数据组数 T ,对于每组数据
第一行数字 n ,表示数字个数
接下来一行 n 个数,按顺序给出环上的数字。
2 <= n <= 100000, 1 <= Ai <= 10 ^ 9
输出描述:
对于每组数据,一行输出YES/NO
示例1:
输入
1
6
1 2 3 4 5 6
输出
NO示例2:
输入
1
4
4 4 5 3
输出
YES
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/S0WXIw
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
#include<bits/stdc++.h>
using namespace std;
int main()
{int T, n, a, i;cin >> T;while(T--){cin >> n; vector<long long> arr(n, 0);//注意溢出i = 0;while(n--){cin >> a;if(i == 0)arr[i] = a;elsearr[i] = arr[i-1] + a;//前缀和i++;}if(arr.back()%2 != 0)//和不能被2整除,分不开{cout << "NO" << endl;continue;}unordered_set<long long> s;long long half = arr.back()/2;bool yes = false;for(i = 0; i < arr.size(); ++i){if(s.count(arr[i]-half)){ //前缀和减去half的值存在,即找到连续的和为halfyes = true;break;}s.insert(arr[i]);//更新前缀和的集合}if(yes)cout << "YES" << endl;elsecout << "NO" << endl;}
}
0 ms 3.2 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 网易-1. 分割环(前缀和 + 哈希)相关推荐
- LeetCode 525. 连续数组(前缀和+哈希)
1. 题目 给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度). 示例 1: 输入: [0,1] 输出: 2 说明: [0, 1] 是具有相同数量0和1的最长连续子数组. ...
- 52 - 算法- leetcode 14 最长公共前缀
// leetcode 14 最长公共前缀 str.sub(index1,index2)这个函数不清楚 // for(vector中的类class : vector) for 循环中的index 和 ...
- [模拟] leetcode 14 最长公共前缀
[模拟] leetcode 14 最长公共前缀 1.题目 题目链接 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例1: 输入: [& ...
- Leetcode 14.最长公共前缀(Longest Common Prefix)
Leetcode 14.最长公共前缀 1 题目描述(Leetcode题目链接) 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "". 输入: ...
- LeetCode 14.最长公共前缀(字符串)
上一篇博客:Leetcode 13.罗马数字转整数(字符串) 写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.最近萌生了刷LeetCode的 ...
- leetcode 416:分割等和子集
leetcode 416:分割等和子集 416. 分割等和子集 给你一个 只包含正整数 的 非空 数组 nums .请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 示例 1: 输 ...
- LeetCode 2185. 统计包含给定前缀的字符串
文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串数组 words 和一个字符串 pref . 返回 words 中以 pref 作为 前缀 的字符串的数目. 字符串 s 的 前缀 就是 s ...
- LeetCode 2017. 网格游戏(前缀和)
文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的二维数组 grid ,数组大小为 2 x n ,其中 grid[r][c] 表示矩阵中 (r, c) 位置上的点数. 现在有两个 ...
- LeetCode 1861. 旋转盒子(前缀和)
文章目录 1. 题目 2. 解题 1. 题目 给你一个 m x n 的字符矩阵 box ,它表示一个箱子的侧视图.箱子的每一个格子可能为: '#' 表示石头 '*' 表示固定的障碍物 '.' 表示空位 ...
最新文章
- 【Groovy】Groovy 方法调用 ( 字符串切割 | 使用 Java 语法切割字符串 | 使用 Groovy 语法切割字符串直接为变量赋值 | 数组赋值给变量 变量个数小于等于数组长度 )
- win10如何设置麦克风?
- 基于命令行设置lazy-queue
- 栈应用_计算按运算符优先级分布的算式(代码、分析、汇编)
- 【算法】学习笔记(4):分治思想 归并排序
- Java 进阶——自动装箱和自动拆箱
- 华三交换机如何进入配置_学校机房项目交换机的如何配置,理解这篇,交换机配置不再难...
- Ubuntu 20.04 安装 .deb 文件报 failed to install file: not supported
- pivot sqlserver 条件_SqlServer行转列(PIVOT),列转行(UNPIVOT)总结
- android+制作开机动画,Android 开机动画制作详解
- asp毕业设计—— 基于asp+access的网上购物系统设计与实现(毕业论文+程序源码)——网上购物系统
- 输出星期名缩写python_python练习题5.1输出星期名缩写
- 思科Cisco 交换机型号概述
- vue支付项目-APP支付宝支付功能
- 一个DDD指导下的实体类设计案例
- 用python预测小孩的身高_预测孩子身高的实用方法
- 操作系统基础:进程逻辑思维导图,超简单理解进程管理
- Jboot框架的使用
- Google Dremel 理解
- 在面试中如何回答面试官的问题
热门文章
- 解决pycharm运行Flask指定ip、端口更改无效
- android tee,Android 9.0的新增安全特性与TEE
- jeecms附件标签用法
- 通俗理解数字签名,ssl数字证书和https
- IntelliJ IDEA使用教程(很全)
- 前端模块化(二):模块化编程
- 【windows phone】CollectionViewSource的妙用
- SPOJ GSS2 Can you answer these queries II (线段树离线) - xgtao -
- 正则表达式替换排除特定情况
- BZOJ4068 : [Ctsc2015]app