等价多米诺骨牌对的数量-c语言实现
语言 实现 数量 等价
2023-09-14 09:06:53 时间
等价多米诺骨牌对的数量
给你一个由一些多米诺骨牌组成的列表 dominoes。
如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。
形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 ac 且 bd,或是 ad 且 bc。
在 0 <= i < j < dominoes.length 的前提下,找出满足 dominoes[i] 和 dominoes[j] 等价的骨牌对 (i, j) 的数量。
示例:
输入:dominoes = [[1,2],[2,1],[3,4],[5,6]]
输出:1
int f(int n){
if(n==1) return 0;
int i;
int s=0;
for(i=1;i<=n-1;i++){
s=s+i;
}
return s;
}
int numEquivDominoPairs(int** dominoes, int dominoesSize, int* dominoesColSize){
int r[dominoesSize][2];
int i,j;
int p=1;
int rs[dominoesSize];
rs[0]=1;
r[0][0]=dominoes[0][0];
r[0][1]=dominoes[0][1];
for(i=1;i<dominoesSize;i++){
int l=0;
// printf("i %d %d ",dominoes[i][0],dominoes[i][1]);
for(j=0;j<p;j++){
// printf("j%d %d ",r[j][0],r[j][1]);
// printf("rs[j] %d j %d i %d ",rs[j],j,i);
if(dominoes[i][0]==r[j][0]&&dominoes[i][1]==r[j][1]){
rs[j]++;
l=1;
break;
}
if(dominoes[i][1]==r[j][0]&&dominoes[i][0]==r[j][1]){
rs[j]++;
l=1;
break;
}
}
if(l==0){
r[p][0]=dominoes[i][0];
r[p][1]=dominoes[i][1];
rs[p]=1;
p++;
}
}
int max=0;
for(i=0;i<p;i++){
printf("rs[j] %d ",rs[i]);
max=max+f(rs[i]);
}
return max;
}
相关文章
- javascript语言扩展:可迭代对象(1)
- 《Go语言实战》摘录:7.3 并发模式 - work
- R语言分类算法之随机森林
- 分类-回归树模型(CART)在R语言中的实现
- R语言实现金融数据的时间序列分析及建模
- R语言实现Xbar-R控制图
- 协同过滤算法 R/mapreduce/spark mllib多语言实现
- Atitit.5gl 第五代语言编程语言 PROLOG教程 人工智能语言的标准 与实现
- Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法
- Python语言学习:Python语言学习之迭代/递归/OS输入输出/错误&异常处理的简介、案例应用之详细攻略
- Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
- CodeIgniter实现config控制的多语言,可根据浏览器语言自动转换
- 剑指 Offer II 047. 二叉树剪枝-c语言-双百递归代码
- 字母移位-c语言解决
- 【一天一门编程语言】设计一套Go语言中的 Stream API 接口代码实现
- 【一天一门编程语言】用 AWK 语言递归实现斐波那契数列代码
- 【编程实践】用 go 语言实现Bloom filter算法
- 【编程实践】用 go 语言实现一个SQL DSL
- 【编程实践】用 go 语言实现 HashSet
- 初步swift该研究指出语言(基本数据类型)
- Go语言精进自学系列 | 了解切片实现原理并高效使用
- 387集Go语言核心编程培训视频教材整理 | 面向对象编程(六)
- 最小值滤波 (C 语言实现)
- c语言字符串_续
- c语言结构体
- 语言的基础是一组记号和一组规则
- 有哪些值得学习的 Go 语言开源项目