LeetCode 914卡盘分组
看了官方题解如下:
class Solution {
public boolean hasGroupsSizeX(int[] deck) {
int N = deck.length;
int[] count = new int[10000];
for (int c: deck)
count[c]++;
List<Integer> values = new ArrayList();
for (int i = 0; i < 10000; ++i)
if (count[i] > 0)
values.add(count[i]);
search: for (int X = 2; X <= N; ++X)
if (N % X == 0) {
for (int v: values)
if (v % X != 0)
continue search;
return true;
}
return false;
}
}
我一直在想,如果使用C语言怎么实现 vues.add(count[i]) 这一步,也就是将count[i] > 0 的这一部分存下来,后来参考了其他人的题解写出的C语言的代码,发现真的需要将这些过滤出来么,我不过滤直接进行遍历不是也是可以的么?
bool hasGroupsSizeX(int* deck, int deckSize){
if (deckSize <= 1) {
return false;
}
int i,X;
int N = deckSize;
int count[10000] = {0};
for (i = 0;i < deckSize;i++) {
count[deck[i]]++;
}
for (X = 2;X <= deckSize;X++) {
if (N % X == 0) {
bool flag = 1;
for (i = 0;i < deckSize;i++) {
if (count[i] > 0 && count[i] % X != 0) {
flag = 0;
break;
}
}
if (flag) {
return true;
}
}
}
return false;
}
通过这个实现,我发现我们有时候一直在思考怎么实现A,难道我们真的需要A么,没有A就不可以么,我们直接使用B可以么?好像这个就是我们经常会遇见的X,Y问题,真正要解决的问题是X,问了很多关于Y的问题,思维陷阱,所以我们思考问题的时候一定要跳出来。
LeetCode 914卡盘分组的更多相关文章
- [LeetCode] 914. X of a Kind in a Deck of Cards 一副牌中的X
In a deck of cards, each card has an integer written on it. Return true if and only if you can choos ...
- [leetcode]914. X of a Kind in a Deck of Cards (easy)
原题 题目原意可转换为 两组有大于等于2的公因数 /** * @param {number[]} deck * @return {boolean} */ var hasGroupsSizeX = fu ...
- leetcode 签到 914. 卡牌分组
题目 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X ...
- leetcode(js)算法之914卡牌分组
给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X > ...
- LeetCode 49 Group Anagrams(字符串分组)
题目链接: https://leetcode.com/problems/anagrams/?tab=Description Problem:给一个字符串数组,将其中的每个字符串进行分组,要求每个分 ...
- LeetCode:字母异位词分组【16】
LeetCode:字母异位词分组[16] 题目描述 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", &quo ...
- LeetCode 49: 字母异位词分组 Group Anagrams
LeetCode 49: 字母异位词分组 Group Anagrams 题目: 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. Given an array o ...
- [LeetCode] 49. Group Anagrams 分组变位词
Given an array of strings, group anagrams together. For example, given: ["eat", "tea& ...
- [LeetCode] 249. Group Shifted Strings 分组偏移字符串
Given a string, we can "shift" each of its letter to its successive letter, for example: & ...
- leetcode 293.Flip Game(lintcode 914) 、294.Flip Game II(lintcode 913)
914. Flip Game https://www.cnblogs.com/grandyang/p/5224896.html 从前到后遍历,遇到连续两个'+',就将两个加号变成'-'组成新的字符串加 ...
随机推荐
- 『Plotly实战指南』--折线图绘制进阶篇
上一篇介绍了Plotly绘制折线图的基础知识和数据预处理的技巧, 本文将重点探讨如何利用Plotly实现多线折线图的布局设计以及动态折线图的实现, 让我们一起掌握进阶的折线图绘制技巧. 1. 多折线图 ...
- Raft学习笔记
0.前言 Raft 作为一种强一致性的共识算法,被广泛应用于分布式系统中,如 etcd.Consul 等.最近阅读了一篇关于 Raft 的技术文章,收获颇多,因此写下此学习笔记,记录其中的关键概念与个 ...
- 【Linux】3.4 用户管理
用户管理 1. 基本用户管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...
- 记载火狐浏览器下的一次新手级的js解密工作
警告:该随笔内容仅用于合法范围下的学习,不得用于任何商业和非法用途,不得未经授权转载,否则后果自负. 首先是需要解密的网站:https://www.aqistudy.cn/historydata/mo ...
- Golang 获取类型
可以通过reflect包的TypeOf()取得某一变量或值的类型.
- datasnap的多表更新
补课很多,xe一路走来,提供了许许多多的多层数据处理的方法.确实已经提供数个最优方案. 把下面的图跑通了,也就解决核心问题了. [Berlin datasnap开发手册p261] 补充:
- wpf关于设备无关性的理解
wpf的像素单位是1/96*系统dpi.当前系统dpi是96,那么wpf的一个单位长就是1px像素.这个系统dpi的意思就是物理单位一英寸里有多少个像素点,比如windows标准的96dpi,意味着一 ...
- win11开启hyper-v安装windows虚拟机
序言: 这周要居家办公了, 趁周末赶紧配置办公环境,因为公司注重安全保密,所以要用对应安全软件,我就干脆整台虚拟机来运行这些东西吧. 开启hyper-v服务 好像是由于电脑装的是windows家庭版, ...
- Mybatis-Plus中的@TableName 和 table-prefix
简介 本文介绍Mybatis-Plus中的@TableName 和 table-prefix的使用. 介绍 在 MyBatis-Plus 中,@TableName 注解和 table-prefix 配 ...
- dify MCP工具调用
一.概述 前面几篇文章,介绍了Cherry Studio客户端调用MCP,接下来介绍dify如何调用MCP 二.dify插件 需要安装2个插件,分别是:Agent 策略(支持 MCP 工具),MCP ...