剑指Offer面试题(第二十一天)面试题35

* 面试题35:复杂链表的复制 *题目:请实现函数complexListNode* Clone(ComplexListNode* pHead), * 复制一个复杂链表。在复杂链表中,每个节点除了有一个m_pNext指针指向下一个节点,还有一个m_pSibling指针指向链表中的任意节点或者null指针。 *C++中节点定义为: *struct ComplexListNode{ * int m_nValue; * ComplexListNode* m_pNext; * ComplexListNo
分类: 其他 发布时间: 04-28 22:54 阅读次数: 0

剑指Offer面试题(第二十二天)面试题36、37

* 面试题36:二叉搜索树与双向链表 自己重新键入了一遍的 * 题目:输入一棵二叉搜索树,将该二叉搜索树转换为一个排序的双向链表 * 要求不能创建任何新的节点,只能调整树中节点指针的指向。 * 例如:输入10 -> (left)6 10 -> (right)14这棵二叉搜索树, * 6 -> (left)4 6 -> (right)8 * 14 -> (left)12 14 -> (right)16 * 则输出转换之后的排序双向链表: 4<-->6<-->8<-->10<-->12<-->14
分类: 其他 发布时间: 04-28 22:54 阅读次数: 0

剑指Offer面试题(第二十三天)面试题38

* 面试题38:字符串的排列 * 题目:输入一个字符串,打印该字符串中字符的所有排列。 * 例如:输入字符串abc,打印出字符a、b、c所能排列出来的所有字符串abc,acb,bac,bca,cab,cba * * 思路:将字符串的多个位置拆分成 ==> 第一个字符+其他字符 * 第一步:第一个字符可以是字符串中的任意一个 * 第二步:剩下的其他字符又可以拆成==> 第一个字符+其他字符 * 。。。。 * 以此类推 这是一个递归的过程 * 分为两步实现:处理第一个字符 * 处理剩余字符 (使剩
分类: 其他 发布时间: 04-28 22:53 阅读次数: 0

剑指Offer面试题(第二十四天)面试题39(Partition)、39(ArrayFeature)

* 面试题39:数组中出现次数超过一半的数字 * 题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 * 例如:输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}. * 由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2 * * 思路:Partition方法 * 将数组进行排序,若是某个数字在数组中超过一半, *那么排序后的中间位置的数字就是要找的那个重复的数字 *使用快速排序的方法,将其进行排序 找到中间的, *并且使用一个函数再对该数字进行检验,查看重
分类: 其他 发布时间: 04-28 22:53 阅读次数: 0

剑指Offer面试题(第二十五天)面试题40(Partition)、40(Heap) 、40(Red_BlackTree+PriorityQueue)

* 面试题40:最小的k个数 * 题目:输入n个整数,找出其中最小的k个数。 * 例如,输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. * 思路: * 方法一:最简单,将数组由大到小排序 前k个数就是最小的k个数 时间复杂度O(nlogn) * 方法二:只有当允许修改输入的数组时才能使用,时间复杂度O(n),空间复杂度O(1) 数据不会乱序 * 根据No39中数组中超过一半的数字的partition的方法, * 可以知道第k个元素的左边就是比k小的k个元素,所
分类: 其他 发布时间: 04-28 22:53 阅读次数: 0

剑指Offer面试题(第二十六天)面试题41(PriorityQueue)、41(RadBlackTree)、42

* 面试题41:数据流中的中位数 * 题目:如何得到一个数据流中的中位数? * 如果从数据流中读出奇数个数值,那么中位数就是所有数值排序后位于中间的数值 * 如果从数据流中读出偶数个数值,那么重欸书九时左右数值排序后中间两个数的平均值 * * 思路:其中数据流中的数据是不断变化的,需要在数据增加之后将其读取到容器中, * 其中容器可以使用数组,排序的链表,二叉搜索树,平衡的二叉搜索树(AVL树),最大堆+最小堆实现 * 其中最大堆+最小堆 得到中位数的时间复杂度为O(1) 插入新的匀速的时间复
分类: 其他 发布时间: 04-28 22:53 阅读次数: 0

剑指Offer面试题(第二十七天)面试题43、44、45

* 面试题43:1—n整数中1出现的次数 (背!!!!!!!!) * 题目:输入一个整数n,求1-n这n个整数中的十进制表示中1出现的次数 * 例如:输入12,1-12这些整数中包含1 的数字有1、10、11、12 1一共出现了5次(11算作2次) * (求出任意非负整数区间的1出现的个数) * * 思路:总结规律发现: 时间复杂度O(k) k为位数 * 当前位的值 = 0时,1出现的次数为: 高位值*当前位位数 * 当前位的值 = 1时,1出现的次数为: 高位值*当前位位数 + 当前位数值
分类: 其他 发布时间: 04-28 22:52 阅读次数: 0

剑指Offer面试题(第二十八天)面试题46、47

* 面试题46:把数字翻译成字符串 * 题目:给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成a,1翻译成b,。。。,25翻译成z * 一个数字可能有多种翻译。 * 例如,12258有5种翻译,分别是bccfi,bwfi,bczi,mcfi,mzi * 请编程实现一个函数,用力啊计算一个数字有多少种不同的编译方法 * * * 思路:动态规划的思路进行解题,自下而上解决子问题 * 从数字的末尾开始,然后从右到左翻译并计算不同翻译的数目 * f(r-2) = f(r-1) + g(r-2,
分类: 其他 发布时间: 04-28 22:52 阅读次数: 0

剑指Offer面试题(第二十九天)面试题48、49(无辅助空间)、49(有辅助空间)

* 面试题48:最长不含重复字符的子字符串+长度 * 题目:请从字符串中找出一个最长的不包含重复自负的子字符串,计算该子字符串的长度。 * 假设字符串中只包含'a'~'z'的字符。 * 例如,在字符串"arabcacfr"中,最长的不含重复字符的子字符串是"acfr",长度为4 * * 思路:运用东岱规划的思想进行解题,设定f(i)表示以第i格字符串为结尾的不包含重复自负的子字符串的最长长度。 * 从左到右逐一扫描字符串中的每一个字符,其中 * 当第i个字符之前没有出现过,则f(i) = f(
分类: 其他 发布时间: 04-28 22:52 阅读次数: 0

剑指Offer面试题(第三十天)面试题50(String)、50(Stream)

* 面试题50:第一次只出现一次的字符 * 题目一:字符串中第一次只出现一次的字符 * 在字符串中找出第一个只出现一次的字符。 * 如输入"abaccdeff",则输出'b' * * 思路:统计每个字符串显得次数:需要使用一个容器存储 ---哈希表 键:ASCII码 值:字符串中出现的次数 * 需要进行两次扫描: * 第一次扫描:跟新哈希表中灭一个字符出现的次数 * 第二次扫描:没扫描一个字符,就从哈希表中读取其出现的次数,遇到的第一个仅出现一次的字符,则将其返回即可 * 因为字符是一个长度为
分类: 其他 发布时间: 04-28 22:52 阅读次数: 0

剑指Offer面试题(第三十一天)面试题51、52

* 面试题51:数组中的逆序对 * 题目:在数组中的两个数字,如果前面的数字大于后面的数字,则这两个数字组成一个逆序对。 * 输入一个数组,求出数组中的逆序对总数 * 例如:在数组{7,5,6,4}中,一共存在5个逆序对,分别是{7,5}{7,6}{7,4}{5,4}{6,4} * * 思路:统计逆序对 * 1> 将数组分割成子数组,再将子数组进行分割 ,直到分割为长度为1的数组 * 2> 统计子数组中最短的数组(两两进行合并)之间的逆序对的数目,然后再统计相邻的子数组中的逆序对的数目,直到合
分类: 其他 发布时间: 04-28 22:51 阅读次数: 0

Python搭建Numpy、SciPy、MatPlotLib环境(下载、安装、测试)

转载自:https://blog.csdn.net/tterminator/article/details/66478221 Numpy是Python开发环境中一个独立的函数库; SciPy是以NumPy为基础,一个应用更加广泛的科学计算工具库; MatPlotLib是一个在使用Numpy、SciPy时经常用到的一个强大的绘图函数库。 在安装这三个package之前,需要系统(本文以Windows为例)中已经安装好Python,这里以Python 2.7为例,安装Numpy(版本1.9.2)、
分类: 其他 发布时间: 04-28 22:50 阅读次数: 0

个人笔记之python库安装

转载请注明作者和出处: https://blog.csdn.net/fanhl111/article/details/88182335 运行平台: Windows Python版本: Python3.x python的库安装主要有两种,第一种比较简单,可以使用pip,优于我的电脑上安装了python的多个版本,目前常用的是python3,为了避免混乱,我对程序python改名为python37,如此,如下命令 例如: python37 -m pip install -U pip setupto
分类: 其他 发布时间: 04-28 22:50 阅读次数: 0

sklearn的学习使用

转载请注明作者和出处: https://blog.csdn.net/fanhl111/article/details/88182335 参考:https://www.cnblogs.com/lianyingteng/p/7811126.html、 传统的机器学习任务从开始到建模的一般流程是:获取数据 -> 数据预处理 -> 训练建模 -> 模型评估 -> 预测,分类。本文我们将依据传统机器学习的流程,看看在每一步流程中都有哪些常用的函数以及它们的用法是怎么样的。 1. 获取数据 1.1 导入s
分类: 其他 发布时间: 04-28 22:50 阅读次数: 0

leedcode学习笔记——1. 两数之和

转载请注明作者和出处: https://blog.csdn.net/fanhl111/article/details/88182335 题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9。因为 nums[0] + nums[1] = 2 + 7 = 9
分类: 其他 发布时间: 04-28 22:49 阅读次数: 0

leedcode学习笔记——2. 两数相加

题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 java题解版本 方法:初等数学 思路:我们使用变量来跟踪进位,并从包含最低有效位的表
分类: 其他 发布时间: 04-28 22:49 阅读次数: 0

sql使用笔记(一)

参考:https://blog.csdn.net/bobo553443/article/details/81383194 安装mysql的教程如上链接,接下来是mysql的基本操作。 使用软件:MySQLworkbench 1、创建数据库 方法一:可以使用工具栏上的创建数据库直接创建数据库,如下图: 方法二:使用命令:create database 数据库名称;(注意最后有分号)来创建。注意,此方法可能不会立马刷新,可以在左下角点击右键选择Refresh all 来刷新。 例: create
分类: 其他 发布时间: 04-28 22:49 阅读次数: 0

Keras实现LeNet-5网络

版权声明:转载请注明来源,谢谢。 https://blog.csdn.net/luke_sanjayzzzhong/article/details/89641592 前言 本着要搞懂各种模型,最近学了Keras,所以心血来潮,试着学习复现一下经典的LeNet模型。 论文地址为:Gradient-Based Learning Applied to Document Recoginition 模型结构 首先得搞清楚模型的结构,包括输入大小,卷积核大小,卷积步长等。这里除了最后一层用了softmax
分类: 其他 发布时间: 04-28 22:48 阅读次数: 0

Android 实现爆炸式菜单按钮弹出效果

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangtaocsdn/article/details/54345715 转载请注明出处:http://blog.csdn.net/wangtaocsdn 最近项目要使用到点击一个按钮弹出多个按钮的效果,在试了几个类库后感觉不是很理想,所以自己代码实现了一个,下图所示: 实现原理很简单,就是利用android原声动画效果,当点击中心按钮时弹出其余按钮。闲话少叙,代码如下。 第一步:activity
分类: 其他 发布时间: 04-28 22:47 阅读次数: 0

Android 用PopupWindow实现加载等待界面

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangtaocsdn/article/details/70983877 转载请标明出处:http://blog.csdn.net/wangtaocsdn/article/details/70983877 实现加载等待界面我用了两种方式,一种是用PopupWindow实现,另一种便是用Activity实现。用Activity实现方法请见我的另一篇博客: 用Activity实现加载等待界面 首先看效
分类: 其他 发布时间: 04-28 22:47 阅读次数: 0