算法类面试题解析——美团2016校招:棋子翻转
时间:2022-05-04
本文章向大家介绍算法类面试题解析——美团2016校招:棋子翻转,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目来自伯乐在线,欢迎有不同答案的同学来一起讨论。
分析:
本题主要是二维数组的操作,对指定的位置上的数字进行翻转,其具体过程如下所示:
其基本的过程如下:
- 遍历数组二,如上图中的红色位置:
- 找到其周围的四个位置,注意数组的上下界
- 验证没有越界的条件下,对其进行修改
方法:
void do_reverse(int **a, int k, int i, int j){
if (i >= 0 && i < k && j >=0 && j < k){
int v = *((int*)a + k*i + j);
if (v == 0){
*((int*)a + k*i + j) = 1;
}else{
*((int*)a + k*i + j) = 0;
}
}
}
void reverse_array(int **a, int **index, int k, int num_i, int num_j){
if (k <= 0 || num_i <= 0) return;
for (int i = 0; i < num_i; i++){
int index_i = (*((int*)index + num_j*i)) - 1;
int index_j = (*((int*)index + num_j*i + 1)) - 1;
// 生成4个翻转点
int index_i_left = index_i - 1;
int index_i_right = index_i + 1;
int index_j_up = index_j - 1;
int index_j_down = index_j + 1;
do_reverse(a, k, index_i_left, index_j);
do_reverse(a, k, index_i_right, index_j);
do_reverse(a, k, index_i, index_j_up);
do_reverse(a, k, index_i, index_j_down);
}
}
- wordpress如何屏蔽wp-json(禁用REST API)
- 贝叶斯系列——贝叶斯与其他统计流派的区别和联系
- bootstrap tab切换如何让鼠标移动自动切换内容
- css自动换行如何设置?url太长会撑开页面
- Histogram of Oriented Gridients(HOG) 方向梯度直方图
- 动态规划系列之最长递增子序列问题解答
- Git SSH Key 生成步骤
- 如何将wordpress所有文章批量改为已发布状态
- dedecms提取某栏目及子栏目名称到首页怎么弄
- Bootstrap速学教程之简要介绍
- Ubuntu 安装 JDK8 的两种方式
- git命令-切换分支
- 如何让dedecms文章点击量增加一定的数值
- dedecms自增标签[field:global.autoindex/]的运用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法