简单举个例子,给你一个废铁,我要打造一枚铁戒,不管你用什么方法。这种对解题方法的 研究,就是算法研究。 如果要想打造一枚金戒,以现有的技术,很难实现,所以称为不可解决算法。

在面向现实中,可能会有很多约束条件,解题方法会苛刻的多。

替换空格

题目描述

将一个字符串中的空格替换成 "%20"。

1
2
3
4
5
  Input:
  "We Are Happy"

  Output:
  "We%20Are%20Happy"

解题思路

一个空格变成了三个东西了,怎么处理?

方法 1:可以把要替换的空格处的东西先往后移动两格,就放的下了,然后在往下查找替换。

/pic/algorithm/1.jpg
空格替换问题

从尾到头打印链表

题目描述

输入链表的第一个节点,从尾到头反过来打印出每个结点的值。

解题思路

使用栈

把东西放到栈里,再存到堆里,然后输出

使用递归

递归放到堆里

使用头插法

不会

数组循环移位