![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 90
Netfishless
获取更多学习资料请关注本人微信公众号:漏网小鱼
展开
-
《剑指offer》第五章 39-52
第五章 优化时间和空间效率1. 时间效率字符串多次拼接时,不要多次使用String的+来拼接字符串,这样会产生很多string临时实例。更好地是用append方法完成字符串拼接。s1.append(s2)把字符串s2拼接到s1后面。查找:顺序查找需要O(n),排序数组需要O(logn),哈希表则是O(1)。剑指 Offer 39. 数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。输入: [1, 2,原创 2021-06-02 20:00:05 · 709 阅读 · 0 评论 -
《剑指offer》第四章 27-38
第四章 解决面试题的思路1.画图让抽象问题形象化剑指 Offer 27. 二叉树的镜像请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / \ 2 7 / \ / \1 3 6 9镜像输出: 4 / \ 7 &n原创 2021-05-28 19:08:06 · 355 阅读 · 0 评论 -
《剑指offer》第三章 16-26题解
第三章 高质量代码1.代码的完整性剑指 Offer 16. 数值的整数次方实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。输入:x = 2.00000, n = 10输出:1024.00000输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25初始解法:x*x重复n-1次。但这种情况下没有考虑n为负数和零。完整解法:应该对负数进行-操作,对于零应该抛出异常。原创 2021-05-24 11:12:46 · 581 阅读 · 0 评论 -
《剑指offer》第2章 03-15题解
第二章 面试需要的基础知识1. 数组剑指 Offer 03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 排序后扫描复杂度O(nlogn)哈希表,空间复杂度O(n),时间复杂度O(n)原地哈希:有的元素多次重复,有的元素确实,使用原地哈希原创 2021-05-20 16:22:37 · 750 阅读 · 0 评论 -
N皇后看回溯套路
这个讲回溯套路的不错我起初的思路以 4 皇后为例,我画出一个搜索树,初始时棋盘的格子都是"."。每一行,选一个格子置为"Q",一行行往下选,第一行有四种选择。在选下一行的皇后时,为了避免列的冲突,有三种选择。继续选下去,构建完整解,可能会遇到对角线冲突。遇到冲突,继续选下去没有意义,得不出合法的解。需要回溯。回溯的套路遍历枚举出所有可能的选择。依次尝试这些选择:作出一种选择,并往下递归。如果这个选择产生不出正确的解,要撤销这个选择(将当前的 “Q” 恢复为 “.”),回到之前的状态,原创 2021-03-13 11:37:20 · 288 阅读 · 0 评论 -
回溯算法
力扣题解中看到一个回溯算法讲的很清晰,记在这里。「回溯算法」与「深度优先遍历」都有 不撞南墙不回头 的意思。我个人的理解是:「回溯算法」强调了「深度优先遍历」思想的用途,用一个 不断变化 的变量,在尝试各种可能的过程中,搜索需要的结果。强调了 回退 操作对于搜索的合理性。而「深度优先遍历」强调一种遍历的思想,与之对应的遍历思想是「广度优先遍历」。与动态规划的区别共同点用于求解多阶段决策问题。多阶段决策问题即:求解一个问题分为很多步骤(阶段);每一个步骤(阶段)可以有多种选择。不同点动态规划只转载 2021-03-12 17:20:42 · 401 阅读 · 0 评论 -
递归问题套路
标题三道题套路解决递归问题递归解题三部曲何为递归?程序反复调用自身即是递归。我自己在刚开始解决递归问题的时候,总是会去纠结这一层函数做了什么,它调用自身后的下一层函数又做了什么…然后就会觉得实现一个递归解法十分复杂,根本就无从下手。相信很多初学者和我一样,这是一个思维误区,一定要走出来。既然递归是一个反复调用自身的过程,这就说明它每一级的功能都是一样的,因此我们只需要关注一级递归的解决过程即可。如上图所示,我们需要关心的主要是以下三点:整个递归的终止条件。一级递归需要做什么?应该返回给上一原创 2020-10-14 18:28:58 · 310 阅读 · 0 评论 -
《大话数据结构》——3.1顺序表相关操作
最近开始学习《大话数据结构》这本书,准备把里面的范例用C++敲一敲,以备后续复习,目前还是很菜很菜,尽量把子函数写清楚,主函数可能就考虑的不是那么周到了。#include <iostream>using namespace std;#include<vector>#include<algorithm>class myList{public: myList(int len);//初始化操作:构造函数 ~myList()//析构函数 { ...原创 2020-09-08 20:38:46 · 1517 阅读 · 2 评论