剑指offer
驯鹿人
天道酬勤
展开
-
矩阵中的d路径--剑指Offer(C++)
矩阵中地路径–回溯法(矩阵、递归) 一、回溯法 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。 回溯算法实际上一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回(也就是递归返回),尝试别的路径。(详情介绍) 二、问题描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的原创 2020-08-31 20:16:35 · 688 阅读 · 0 评论 -
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。--剑指offer(C++)
题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 在做这个问题之前,让我们看看简化版题目的做法。 简化版题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 分析: 对于这样的问题,采用递归求解是最佳方法。通过分析很容易得到下表。 台阶数n 跳法 0 0 1 1 2 2 3 3 4 5 … … n ? 表1 分析表1,我们原创 2020-05-18 21:23:29 · 1357 阅读 · 0 评论 -
用两个栈来实现一个队列,完成队列的push和pop操作。 队列中的元素为int类型。
**题目描述:**用两个栈来实现一个队列,完成队列的push和pop操作。 队列中的元素为int类型。 **思路:**栈是后进先出,队列是后进后出。堆栈1中元素出栈,出栈的元素进入堆栈2,这样就使得堆栈 1和堆栈2中的元素的顺序恰好是相反的。(比如堆栈1中元素顺序为{5 4 3 2 1},那堆栈2中元素顺序必然为{1 2 3 4 5})利用这个性质就可以完成队列的push和pop操作。 堆栈1 堆栈2 实际队列 5 1 1 4 2 2 3 3 3 2 4 4 1 5 5原创 2020-05-17 22:36:47 · 247 阅读 · 0 评论