![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
WindSearcher
打造自己的梦想,否则就被雇佣打造他人的梦想!
展开
-
包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路:这里写一个栈结构很容易,但如何在元素出栈,我们能得出这个栈的最小元素,以O(1)。这里我想到了以空间换时间,开一个大的数组,保存每一次进栈后,更新的的最小值,也就是说,有多少个栈元素,我就有多少个最小值。import java.util.Stack;publi...原创 2019-11-30 21:21:10 · 125 阅读 · 0 评论 -
顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.这道题我没有思路,题意很容易明白,给你一种你能做出来,却下不了笔的感觉。import java.util.Arr...原创 2019-11-30 21:12:35 · 106 阅读 · 0 评论 -
树的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:找子结构,首先比较A和B是否相同,不同则继续递归拆分A(拆分的方式就是左右遍历),拆分后得到的树再与B比较。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNo...原创 2019-11-30 21:07:38 · 111 阅读 · 0 评论 -
合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则思路:我们新建一条链表,把需要排序的两条链表(A1,A2)从头开始排序,A1的头部与A2的头部比较,谁小,插入到新的链表中,继续比较A1下一个节点与A2头部,谁小插入到新链表,往后移动一位。往复如此。/*struct ListNode { int val; struct ListN...原创 2019-11-30 21:00:18 · 102 阅读 · 0 评论 -
从尾到头打印链表
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/class...原创 2019-11-28 14:04:17 · 100 阅读 · 0 评论 -
【剑指offer】1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。第一种思路:暴力枚举class Solution {public: bool Find(int target, vector<vector<int> >...原创 2019-08-08 15:45:19 · 246 阅读 · 0 评论 -
【剑指offer】第二题
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。第一种思路,开辟一个新的内存存修改后的字符串(时间复杂度为o(n))class Solution {public: void replaceSpace(char *str,int length) { ...原创 2019-08-09 11:47:10 · 127 阅读 · 0 评论 -
剑指offer-矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?从X轴看,第一步只占用一格,其方法总数相当于X-1,第二步只占用两格,其方法总数相当于X-2如果看了这一套理论还存在疑惑。可以尝试将题目改成1*3方块覆盖3*n、1*4方块覆盖4*n。相应的结论应该是:(1)1 * 3方块 覆 盖3*...原创 2019-08-15 15:10:08 · 101 阅读 · 0 评论 -
进制转换-牛客网
题目描述将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。输入描述:多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数)输出描述:每行输出对应的二进制数。示例1输入复制0138输出复制01111000#include<iostream...原创 2019-08-15 16:16:41 · 248 阅读 · 0 评论