DesmonDay's Blog

一只小辣鸡的自我拯救之路


  • 首页

  • 分类

  • 归档

  • 标签

剑指Offer-二叉树的镜像

发表于 2019-01-20 | 分类于 剑指Offer
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 思路分析就按照自己的思路来写,不要怀疑自己。其实题目挺简单的,使用递归方法即可完成。 12345678910111213141516171819202122/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; Tr ...
阅读全文 »

剑指Offer-树的子结构(难)

发表于 2019-01-18 | 分类于 剑指Offer
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路分析思路参考《剑指Offer》一书。 12345678struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : v ...
阅读全文 »

剑指Offer-合并两个排序的链表

发表于 2019-01-18 | 分类于 剑指Offer
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题思路想不到自己做对了,没遇到什么因为指针而错误的坑!算是一个小小的进步吧。虽然有个地方,因为我不知道动态内存怎么申请的,所以一开始有点卡,struct申请:ListNode* head = new ListNode(0); 这是在有构造函数的情况下,若没有,则直接new再加上结构体的名称。 至 ...
阅读全文 »

剑指Offer-反转链表

发表于 2019-01-18 | 分类于 剑指Offer
题目描述输入一个链表,反转链表后,输出新链表的表头。 解题思路哎,惭愧,这题我没有做出来。然而,本应该是一道很基础的题目。我现在会两种写法,一是利用栈,二是利用头插法。这里就各自重写一次。另外,链表题要特别注意为空的情况。123456789101112131415161718192021222324252627282930313233343536373839404142434445/*struct ...
阅读全文 »

剑指Offer-链表中倒数第k个结点

发表于 2019-01-17 | 分类于 剑指Offer
题目描述输入一个链表,输出该链表中倒数第k个结点。 思路分析运用双指针法,两个指针均指向头结点。其中一个指针p1先走k个结点,然后再让两个指针同时走,当p1走到末尾时,此时p2指针所指结点即为倒数第k个结点。但特别要注意的是,要考虑边界条件!!每道题,都要优先考虑边界条件!! 12345678910111213141516171819202122232425/*struct ListNode &# ...
阅读全文 »

剑指Offer-调整数组顺序使奇数位于偶数前面

发表于 2019-01-16 | 分类于 剑指Offer
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题思路一开始把题目看错了,没有看到要求相对位置不变,因此使用了类似于快排的方法来做(这个也应该是一个可能的考点)。由于要求相对位置不变,我的想法很简单,将奇数和偶数分别按顺序存储在两个vector中,再修改原始vecto ...
阅读全文 »

剑指Offer-数值的整数次方(快速幂)

发表于 2019-01-16 | 分类于 剑指Offer
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路分析参考博客:https://www.cnblogs.com/lca1826/p/6748372.html 惭愧,第一个想到的方法居然是调用pow()函数,而且也过了。实际上这道题目是要考察快速幂的知识。快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连 ...
阅读全文 »

剑指Offer-二进制中1的个数

发表于 2019-01-16 | 分类于 剑指Offer
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解题思路我一开始的方法是最蠢笨的,即将整数表示为二进制位数,再依次数其中1的个数。由于负数是用补码表示的,因此负数这个情况花了不少时间。特别是最后有个特例始终过不了,只能添加了一个if判断语句,这才通过。蠢笨代码如下:123456789101112131415161718192021222324252627282930313 ...
阅读全文 »

剑指Offer-矩阵覆盖

发表于 2019-01-15 | 分类于 剑指Offer
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解题思路类似跳台阶的题目,同样是根据数学归纳法来做。这也启示我,当遇到当n=?时的题目时,一般采用数学归纳法来做,找出归纳公式。此题为斐波那契数列。12345678910111213class Solution {public: int rect ...
阅读全文 »

剑指Offer-变态跳台阶

发表于 2019-01-15 | 分类于 剑指Offer
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解题思路经过之前的跳台阶一题,我也有了一定的经验教训,直接采用数学归纳法来做这题。很快便得到了递推的公式,result = 2^(number-1)。不再赘述,这题的关键便是找到规律,根据数学归纳法总结公式。 12345678class Solution {public ...
阅读全文 »
1…789…14
DesmonDay

DesmonDay

主攻方向:NLP

133 日志
14 分类
12 标签
RSS
GitHub
© 2020 DesmonDay
本站访客数:
由 Hexo 强力驱动
主题 - NexT.Muse