随笔分类 -  剑指offer

摘要:难度:简单 知识点:二分 题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 解题思路: 其实可以直接返回数组种的最小值,但是这样子题目就失去了意义。 阅读全文
posted @ 2021-07-18 17:01 LLLLgR 阅读(97) 评论(0) 推荐(1)
摘要:难度:简单 知识点:栈 题目描述: 用两个栈来实现一个队列,分别完成在队列尾部插入整数(push)和在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。 解题思路: 栈是先进后出,队列是先进先出。 所以,要想实现先进先出,则需要两个栈,从栈 阅读全文
posted @ 2021-07-15 21:51 LLLLgR 阅读(64) 评论(0) 推荐(0)
摘要:难度:较难 考点:字符串 题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解题思路: 最容易想到的是s.replace(a,b)函数,用b直接替换a 但是replace是只有在 阅读全文
posted @ 2021-07-15 21:46 LLLLgR 阅读(63) 评论(0) 推荐(0)
摘要:难度:中等 知识点:数组 题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题思路: 最容易想到的就是直接两层for循环嵌套进行遍历,但是这样 阅读全文
posted @ 2021-07-15 21:43 LLLLgR 阅读(74) 评论(0) 推荐(0)
摘要:难度:简单 考点:递归、动态规划 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。 解题思路: 通过分析可以发现,也是一个可以递归的问题,同样,定义变量来存储中间变量方便后续取用。 # -*- coding:ut 阅读全文
posted @ 2021-07-14 21:43 LLLLgR 阅读(92) 评论(0) 推荐(0)
摘要:难度:简单 考点: 递归 问题描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 解题思路: 类似斐波那契数列,找规律,发现是递归的,同斐波那契,如果直接写递归,时间复杂度过高,所以依然用循环来做 # -*- coding: 阅读全文
posted @ 2021-07-14 21:38 LLLLgR 阅读(59) 评论(0) 推荐(0)
摘要:难度:入门 题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。 思路: 1.最容易想到的是递归,但是分析发现递归的时间复杂度非常高,2^n 2.找规律,用循环,创建中间变量来保存前一轮的结果,在下一轮之中直接取用 # -*- 阅读全文
posted @ 2021-07-14 21:34 LLLLgR 阅读(46) 评论(0) 推荐(0)