从看到问题到解决问题有固定的多个步骤,按照这些步骤可以快速解决问题。

这里举例一个问题来演示如何通过下面的解题步骤解决问题
问题:实现整数的数字反转,要达到的目标是

  • 保留符号
    -123 —> -321
  • 转化顺序
    123 —> 321
  • 首位去0
    120 —> 21

6C解题法

1.Comprehend 理解题意

先明白要解决的问题要达到的目标是什么,然后再思考这个问题有哪些解题思路

通过上面的内容已经知道,这个问题要达到的目标是:

  • 保留符号
    -123 —> -321
  • 转化顺序
    123 —> 321
  • 首位去0
    120 —> 21

这个问题的解题思路有多个,如

  • 逆序输出
    从右边最后一个数字开始,依次往右的顺序输出数字
  • 首尾交换
    第一个数字和最后一个数字交换,第二个数字和倒数第二个数字交换,以此类推

2.Choose 选择数据结构及算法思维

有了解题思路只是第一步,然后我们需要思考如何实现解题思路,就是具体的操作过程是怎样的,操作过程中的算法思维,以及在操作过程中数据以怎样的结构存储起来,也就是数据结构(如在操作过程中数据以数组的形式存储,那么选择的数据结构就是数组)

算法思路属于实现解题思路的具体流程中的一部分,通过展示上面两种解题思路具体的实现流程来解释数据结构算法思维这两个概念

解题思路一逆序输出,具体操作流程如下:
1.将整数转换成字符串
2.将字符串转换成数组(数组就是我们确定好的数据结构
3.遍历
确定好数据结构的数据,通过遍历的方法实现逆序输出数字的思路就是我们的算法思维。注意:将数组遍历是我们的算法思维,而在遍历时具体的操作不属于算法思维

按照解题思路二首尾交换,具体操作流程如下:
1.将整数转换成字符串
2.将字符串转换成数组(数组就是我们确定好的数据结构
3.遍历
通过遍历的方法实现首尾交换数字的思路就是我们的算法思维。注意:将数组遍历是我们的算法思维,而在遍历时具体的操作不属于算法思维

上面两种解题思路算法思维都是遍历,而遍历只是整个实现流程中的一部分。这两种解题思路的具体操作流程虽然不同,也就是在遍历内的具体操作不同,但是他们选择的数据结构算法思维是一样的(数组结构是数组;算法思维是遍历),当然不同的解题思路也会出现数据结构和算法思维不同的情况。