![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构&算法
MrZhangBaby
世界上并没有完美的程序,
但我们并不因此而沮丧,
因为写程序本来就是一个不断追求完美的过程。
你可以不够优秀,但不要甘于平凡。
展开
-
谈笑间学会数据结构&算法——重建二叉树
谈笑间学会数据结构&算法——重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路通过分析前序遍历和中序遍历的规律,前序遍历的第一个节点就是二叉树的根节点,中序遍历中,位于根节点前面的所有节点都位于左子树上,位于根节点后面的所有节点都位于右子树上面。通过这个规律,我们可以使用递归方法来重建二原创 2021-01-12 18:27:35 · 175 阅读 · 0 评论 -
谈笑间学会数据结构&算法——从尾到头打印链表
谈笑间学会数据结构&算法——从尾到头打印链表题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。代码示例/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/import java.util.Array原创 2021-01-12 18:02:15 · 142 阅读 · 0 评论 -
谈笑间学会数据结构&算法——替换空格
谈笑间学会数据结构&算法——替换空格题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。代码示例public class Solution { public String replaceSpace(StringBuffer str) { if(str == null){ return null; }原创 2021-01-08 18:20:09 · 137 阅读 · 0 评论 -
谈笑间学会数据结构&算法——二维数组中的查找
经典机试题(剑指offer)谈笑间学会数据结构&算法——二维数组中的查找二维数组中的查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路通过分析可以很简单的找出一个规律,二维数组的最左下角的的点,该点的所在列上边的点都是减少的,该点所在行右边的点都是增加的。因此,我们以该点作为切入点,如果目标数比左下角的数大,则往右边移动;如果目标数原创 2021-01-07 15:55:27 · 134 阅读 · 0 评论 -
算法④:把字符串变成数字
算法④:把字符串变成数字 题目链接:https://leetcode-cn.com/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof/题目要求:写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号原创 2020-06-08 09:58:49 · 1657 阅读 · 0 评论 -
算法③:构建乘积数组
算法③:构建乘积数组 题目链接:https://leetcode-cn.com/problems/gou-jian-cheng-ji-shu-zu-lcof/题目要求: 给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。示例 1:输入: [1,2,3,4,5]输出: [120,60,40,30,24]提示:所有元素乘积之和不会溢出 32原创 2020-06-05 17:23:46 · 301 阅读 · 0 评论 -
算法题②:不用加减乘除做加法
题扣面试题:面试题65. 不用加减乘除做加法 题目链接:https://leetcode-cn.com/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/题目要求: 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。示例 1:输入: a = 1, b = 1输出: 2提示:a, b 均可能是负数或 0结果不会溢出 32 位整数解题思路 看到这道题,你脑子里是否有很多问号?原创 2020-06-03 20:12:30 · 315 阅读 · 2 评论 -
算法题①:求1+2+…+n
题扣面试题:面试题64. 求1+2+…+n 题目链接:https://leetcode-cn.com/problems/qiu-12n-lcof/题目要求: 求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000解题思路 首先我们梳理一下,这题要求我们不能原创 2020-06-02 16:23:15 · 1358 阅读 · 3 评论