Co2y's Blog

solver


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签
Co2y's Blog

spiral matrix中任意位置的元素

发表于 2017-04-14 | 分类于 Algorithm |

今天面试的一道题,回来的路上想出来了。。结果当然是杯具了。。

题目

给一个回形矩阵,例如

1
2
3
123
894
765

问任意(i, j)位置的元素是多少

解法

假设是一个M*N的矩阵,既然是回形的,对于所求位置(i, j),我们可以判断它所处于第几个环,即

1
min(i, j, M - i - 1, N - j - 1)

而第k环,所包含的元素个数为(k从1计)

1
2*(M + N - 2) - 8*(k - 1)

所以前n环的元素个数为(n从0计)

1
2
3
sum(0 <= i < n : 2*(M + N - 2) - 8*i) = 2*n*(M + N - 2) - 8 * sum(0 <= i < n : i)
= 2*n*(M + N - 2) - 8 * n * (n - 1) / 2
= 2*n*(M + N - 2*n)

最终结果 (copy from stackoverflow)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if (n == y) {
// top of this round
index += x - n;
} else {
// add full top of this round
index += M - 2 * n;
if (n == M - x - 1) {
// right side of this round
index += y - (n + 1);
} else {
// add full right side of this round
index += N - 2 * n - 1;
if (n == N - y - 1) {
// bottom of this round
index += N - x - 1 - (n + 1);
} else {
// add full bottom of this round
index += M - 2 * n - 1;
// left side of this round
index += M - y - 1 - (n+1);
}
}
}

小结

好好学基础(语言+算法),然后深入一个领域。至于碰上文不对题的面试官,那就是运气玄学了。

Co2y's Blog

大数据平台介绍

发表于 2017-03-09 | 分类于 Big Data |

本文主要对当前主流的大数据处理平台做一个简介,包括它们的发展史、整体结构、相互之间关系和使用场景,属于科普文章。

阅读全文 »
Co2y's Blog

hihocoder-Offer收割编程练习赛8

发表于 2017-03-05 | 分类于 Algorithm |

2017-03-05 hihocoder[Offer收割]编程练习赛8题解

阅读全文 »
Co2y's Blog

Spark vs Flink

发表于 2017-02-24 | 分类于 Big Data |

Spark和Flink是当今最主流的两个处理平台,早期Flink主要针对流处理,与之对应的是Spark Streaming,但随着两者的发展,许多地方逐渐统一。无论是Spark还是Flink都在解决MR针对迭代型数据处理需要反复存/读取硬盘的问题,并且在传统map,reduce算子的基础上扩充了许多算子。本文主要包括两个方面,Spark、Flink的介绍和比较。

阅读全文 »
Co2y's Blog

算法&数据结构小结

发表于 2017-02-15 | 分类于 个人小结 |

最近开始找暑期实习了,刷了一些算法题。下面做个汇总和小结。

阅读全文 »
Co2y's Blog

2016年终总结

发表于 2016-12-31 | 分类于 个人小结 |

2016即将过去了,又打了一年酱油,稍微总结下学到的知识吧。 整体来说,上半年把所有的学分修满了,下半年也就写了篇论文(估计还中不了。。),期间学了各种姿势如下

阅读全文 »
Co2y's Blog

Phoenix源码阅读 select scan filter

发表于 2016-11-30 | 分类于 Phoenix |

Phoenix把SQL翻译成scan,但是一条简单查询的执行计划并没有看到filter,那么Phoenix中select字段是否有对应的FamilyFilter或者QualifierFilter呢,也就是应该在scan的时候addFamily或者addColumn。

阅读全文 »
Co2y's Blog

hadoop故障修复方法

发表于 2016-09-27 | 分类于 Hadoop |

hadoop集群中又出现了许多corrupted block, 在此记录一些可能的解决方法。

阅读全文 »
Co2y's Blog

Phoenix SQL执行源码分析

发表于 2016-09-22 | 分类于 Phoenix |

在做TPC-C on phoenix的时候遇到了一个SQL优化的问题,主要表现为phoenix的join没有考虑where子句,见PHOENIX-3310。

阅读全文 »
Co2y's Blog

Phoenix Join和Filter

发表于 2016-09-17 | 分类于 Phoenix |

Apache Phoenix 的Join和Filter机制介绍。

阅读全文 »
123…5
Co2y

Co2y

think, record, do

50 日志
17 分类
51 标签
GitHub Weibo
© 2019 Co2y
由 Hexo 强力驱动
主题 - NexT.Mist