内容简介:昨天被问到了一道「阶梯数」的问题,题目还原如下:给定一个整数数列,如果它满足取任意相邻两位上的值,只要满足差的绝对值都为 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;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- jmeter(二十)阶梯式加压测试
- Elasticsearch 入门到高手的成长阶梯-索引的基本操作(1)
- Elasticsearch 入门到高手的成长阶梯-Elasticsearch集成中文分词IK
- Elasticsearch 入门到高手的成长阶梯-索引的基本操作(2)-索引的收缩和拆分
- 复盘攻防,再聊安全
- 一次MongoDB故障的复盘
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Linux Command Line
William E. Shotts Jr. / No Starch Press, Incorporated / 2012-1-17 / USD 39.95
You've experienced the shiny, point-and-click surface of your Linux computer-now dive below and explore its depths with the power of the command line. The Linux Command Line takes you from your very ......一起来看看 《The Linux Command Line》 这本书的介绍吧!
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
RGB HSV 转换
RGB HSV 互转工具