关于阶梯数问题的复盘

栏目: IT技术 · 发布时间: 4年前

内容简介:昨天被问到了一道「阶梯数」的问题,题目还原如下:给定一个整数数列,如果它满足取任意相邻两位上的值,只要满足差的绝对值都为 1,则称其为阶梯数。现在回头一想是很基础的题目,可惜当场答得细碎。解题前我们得先找一些「甩锅」的理由:

昨天被问到了一道「阶梯数」的问题,题目还原如下:

给定一个整数数列,如果它满足取任意相邻两位上的值,只要满足差的绝对值都为 1,则称其为阶梯数。

复盘

现在回头一想是很基础的题目,可惜当场答得细碎。解题前我们得先找一些「甩锅」的理由:

  • 过度思考
    • 总是觉得出题者的意图附带有特别的含义
  • 思维惯性
    • 之前做的一些分类题,回文也好,DFS 也好,习惯将解题思路往里面套。
  • 心态问题
    • 表达能力作为输出的一种方式,刻意练习「小黄鸭」模式是必要的。

针对第一点,要意识到出题者对于白板编程的要求关注的是被提问者的解题思路,复杂难解的题目并不是考察的关键指标,观察对方遇到问题的思考过程比结果重要。在这短时间内了解一个人的行为与思考模式也算普遍且相对有效的手段。

对于如果处理思维惯性。选择忘记之前的经验不失为一种最好的办法。经验可以帮助处理已有的问题模式,但无法处理新类型的窘境。所谓无招胜有招,张三丰把太极剑传授给张无忌时,要他将招数尽数忘掉才算学会:

张无忌学第一遍时,他忘记了大半剑招;学第二遍时,他还有几招没忘;学第三遍时,他才把所有剑招忘记。《倚天屠龙记》原著描写如下:张无忌在殿上缓缓踱了一个圈子,沉思半晌,又缓缓踱了半个圈子,抬起头来,满脸喜色,叫道:「这我可全忘了,忘得干干净净的了。」张三丰道:「不坏,不坏!忘得真快,你这就请八臂神剑指教罢!」

至于最后的心态,要认识到慌乱对于求解并无裨益。需要从结果论调整为过程论,「连续的」到达目的地而不是「离散的」到达才是前进的方式。只要觉得方向没有问题,剩下的都是时间上的问题。

题解

解题思路为:一次遍历,每次的循环中取相邻数进行两两比较,只要中途不中断完成循环即为阶梯数:

public static boolean valid(String str) {
	char[] arr = str.toCharArray();
	if (arr.length == 0) {
		return false;
	}

	for (int i = 0; i < arr.length - 1; i++) {
		int pre = Integer.parseInt(String.valueOf(arr[i]));
		int next = Integer.parseInt(String.valueOf(arr[i + 1]));

		if (Math.abs(pre - next) != 1) {
			return false;
		}
	}

	return true;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

精益思想

精益思想

(美)詹姆斯 P.沃麦克(James P.Womack)、(英)丹尼尔 T.琼斯(Daniel T.Jones) / 沈希瑾、张文杰、李京生 / 机械工业出版社 / 2011-4 / 48.00元

打算尝试精益的人,该怎么做? 已经实行精益的人,下一步怎么办? 本书包含了最新的精益理论、方法和工具,一一解答上述问题。 这是目前关于流程再造最好的书,也是最好读的。——《高业周刊》 本书中文简体字版由FreePress通过AiWA授权机械工业出版社在中国大陆独家出版发行。未经出版者书面许可,不得以任何方式抄袭、复制或节录本书中的任何部分。 《精益思想》于1996年秋......一起来看看 《精益思想》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具