自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 问答 (2)
  • 收藏
  • 关注

原创 Leetcode剑指offer——面试题10- II. 青蛙跳台阶问题

class Solution {public: int numWays(int n) { if(n==0) return 1; if(n==1) return 1; int nums[n+1]; nums[0]=0; nums[1]=1; ...

2020-02-23 09:52:00 257

原创 Leetcode剑指offer——面试题10- I. 斐波那契数列

这里要注意当n取很大的数字时,如果不提取进行取模,仅仅对结果进行取模的话,很有可能会超过整数的表达范围,longlong也不行。此外,如果按照正常递归的写法,时间复杂度是指数,所以要用O(n)的写法线性扫描,否则肯定会超时。class Solution {public: int fib(int n) { if(n==0) retur...

2020-02-23 09:37:06 280

原创 Leetcode剑指offer——面试题09. 用两个栈实现队列

将两个栈分别命名为stack1、stack2.添加是正常入栈至stack1.弹出时,将stack1所有远处弹出至stack2,此时stack2栈顶即为要被弹出的元素。弹出后再将stack2的元素依次弹出至stack1即可。class CQueue {public: stack<int> stack1; stack<int> stack2; CQ...

2020-02-23 09:08:18 248

原创 Leetcode剑指offer——面试题07. 重建二叉树

这个题可以用递归的思想来做。首先先序遍历的头节点就是根节点,从中序遍历中找到根节点,根节点左边为左子树,右边为右子树,左子树的根节点为先序遍历的根节点索引+1,右子树的根节点为线序遍历的根节点索引+中序遍历根节点索引-中序遍历开始的索引+1.返回条件为中序遍历开始的索引>结束的索引。/** * Definition for a binary tree node. * struct T...

2020-02-23 08:47:30 180

原创 Leetcode剑指offer——面试题06. 从尾到头打印链表

这个题很简单,用一个栈就可以完美解决。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {pub...

2020-02-22 20:48:08 226

原创 Leetcode剑指offer——面试题05. 替换空格

也是一道比较简单的常规题。class Solution {public: string replaceSpace(string s) { int length=s.size(); string re=""; for(int i=0;i<length;i++) { if(s[i]=...

2020-02-22 20:42:21 183

原创 Leetcode剑指offer——面试题04. 二维数组中的查找

常规题,暴力解就好了。class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { int n=matrix.size(); if(n==0) { ...

2020-02-22 20:34:57 260

原创 Leetcode——743. 网络延迟时间

首先一个比较坑的点,不要误以为给你的nums就是我们通常意义的二维数组,而是单纯的存储边的一个数组,所以我们首先要构建一个二维的vector容器。创建mn的二维vector:直接定义1.vector<vector > nums(m ,vector(n)); //mn的二维vector2.vector<vector > nums;nums.resize(...

2020-02-21 20:00:44 229

原创 腾讯校园招聘笔试——逛街能看到楼的数量

小Q在周末的时候和他的小伙伴来到大城市逛街,一条步行街上有很多高楼,共有n座高楼排成一行。小Q从第一栋一直走到了最后一栋,小Q从来没有看到过这么多高楼,所以他想知道他在每栋楼的位置处能看到多少栋楼呢?(当前面的楼的高度大于等于后面的楼时,后面的楼将被挡住)输入描述:输入第一行将包含一个数字n,表示楼的栋数,接下来的一行将包含n个数字wi(1<=i<=n),代表一栋楼的高度。1&...

2020-02-21 16:52:07 1946 1

原创 Leetcode——剑指offer3. 无重复字符的最长子串

方法一二判断相等的方法还是空间换时间,维护一个长度128的flag的bool数组(涵盖ascll表),访问一次数组元素置true,二次访问则说明有重复元素。方法一:暴力时间复杂度O(n^3)最长的测试用例超时class Solution{public: int lengthOfLongestSubstring(string s) { int leng...

2020-02-20 17:05:30 151

原创 Leetcode剑指offer——2. 两数相加

比较常规的一道题,就是两个数组/链表合并,在很多算法都有两个数组合并的情境,尤其是再用分治的思想解决问题的最后一步就要归并各个子问题的结果,比如说归并排序。需要注意的两个点:这个题唯一卡掉我一次机会的是考虑这样的情况,l1:{5},l2:{5},结果是{0,1}.如果你判断了l1和l2同时为null就不管了你就错了这个点,所以在判断l1和l2为null的同时还要判断进位pre为0的时候,才...

2020-02-20 14:33:33 162

原创 Leetcode——剑指offer面试题03. 数组中重复的数字

这题很简单,空间换时间,新建一个等长的bool数组,用bool数组记录元素是否被访问过。未访问过是false,访问了置true,遍历时如果发现bool数组该元素对应为true则说明之前访问过,返回即可。最后的return -1为了让编译器通知int类型的函数返回值。其实用不上,有的编译器也不会报错。class Solution {public: int findRepeatNumb...

2020-02-20 14:03:38 315

原创 动态规划求解币值找零最优解

币值为1、3、5.总额可自设。空间复杂度O(n),时间复杂度O(n*n)。n为总额。均为近似。#include <iostream>using namespace std;int number(int totalNumber){ bool flag[totalNumber+1]={false}; flag[0]=true; int i=1; ...

2020-02-20 08:35:46 689

原创 满二叉树求根到叶子节点的最短路径

用动态规划的思想以下图为例子:可以用递归(dfs)、bfs等算法,接下来介绍dp的思想。主要是以下递推方程:a[j]=min(a[j/2],a[j/2+1])+a[j]; for(int i=2;i<stage;i++) { int num=i*(i+1)/2; //开始的下标 num+...

2020-02-19 20:40:15 691

原创 八皇后问题(C++回溯法求解)

#include <iostream>using namespace std;int row_col[8];int count=0;bool isOk(int row,int col){ int leftUp=col-1; int rightUp=col+1; for(int i=0;i<row;i++) { if(r...

2020-02-19 14:28:53 1038

原创 Leetcode——53. 最大子序和

class Solution{public: int maxSubArray(vector<int>& nums) { int sum=nums[0]; int re=nums[0]; //主要思路是维持一个最大值re,假设其不全为负数,那么在累加过程之中,如果累加和小于0说明后面不能以其为前缀了,则重新开...

2020-02-19 13:57:51 123

原创 Leetcode——122. 买卖股票的最佳时机 II

思路:贪心算法。时间复杂度O(n)。遍历一遍数组。如果还没有买入,则如果第二天比今天价格高则买入,否则向后走。如果买入了,第二天价格比今天低,则卖出。最后判断在最后一天的时候有没有买入,因为最后一天没有后续的第二天了,如果买了就直接卖出,因为既然会买进,那么说明在最后一次买肯定是后续卖出会赚钱。之前判断第二天和当前日子价格的差距决定是否卖出是为了贪心确定最佳卖出时间。class S...

2020-02-19 09:30:23 111

原创 Leetcode——703. 数据流中的第K大元素

用小根堆的思路:首先建立一个由最大k个元素形成的小根堆,add元素时进行比较,如果元素小雨堆顶元素,则直接返回堆顶元素,如果大于等于堆顶元素,就删除堆顶节点,并将add的元素插入堆。插入删除时间复杂度均为O(logn)。建堆的过程比较复杂,首先要考虑初始的nums数组大小与k的关系,如果大于k则直接建堆,后续只需要比较就好了,如果小于k(k-1),则要第一次add的时候先建堆。删除堆顶元素...

2020-02-18 20:52:51 110

原创 Leetcode——101. 对称二叉树(C++)

思路一:递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * };...

2020-02-18 16:56:16 352

原创 邻接表实现图的深搜、广搜(C++实现)

大体思路:一个邻接节点类adjNode,一个顶点类vertexNode,一个图类Graph。邻接表的主要结构:顶点数组每个顶点下接一个邻接点的链表大致结构如图所示为了方便代码没有加非法值判断默认输入格式正确且节点存储的信息默认就是数字了,如果要存字母什么的可以在类中加一个数据项。#include <iostream>#include <vector>#i...

2020-02-18 11:55:57 562

原创 Leetcode——104. 二叉树的最大深度

思路一:递归实现深度优先搜索(DFS)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(N...

2020-02-17 10:08:48 101

原创 快速排序(C++实现)

快速排序如果要排序数组中下标从 p 到 r 之间的一组数据,我们选择 p 到 r 之间的任意一个数据作为 pivot(分区点)。我们遍历 p 到 r 之间的数据,将小于 pivot 的放到左边,将大于 pivot 的放到右边,将 pivot 放到中间。经过这一步骤之后,数组 p 到 r 之间的数据就被分成了三个部分,前面 p 到 q-1 之间都是小于 pivot 的,中间是 pivot,后面的 ...

2020-02-15 19:52:22 184

原创 归并排序(C++实现)

如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。实现代码:#include <iostream>#include <vector>using namespace std;vector<int> combine(vector<int>& nums...

2020-02-15 17:49:25 236

原创 冒泡排序、插入排序、选择排序、希尔排序(C++实现)

冒泡排序:冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。最优时间复杂度:O(n)最差时间复杂度:O(n^2)平均时间复杂度:O(n^2)稳定排序class Solution {public: vector&l...

2020-02-15 14:46:30 241 1

原创 Leetcode——08.05. 递归乘法

class Solution {public: int multiply(int A, int B) { B--; if(B>0) { return multiply(A,B)+A; } else { return ...

2020-02-15 09:40:37 312

原创 Leetcode——622. 设计循环队列

这里用变量qsize来指示队列中含有多少个元素,判断队列满或空。在编码的时候要注意数组下标的边界就好了。注意一点:自己因为很长时间不写c++对c++的语法不是很熟了,新建一个动态int数组为new int[length_of_the_array] 而 new int(int_value)是new一个int数,值为int_value,让我找了好长时间才发现这个错误555.class MyCir...

2020-02-14 13:56:13 1294

原创 Leetcode——155. 最小栈

思路:设置一个坐标loc_min指向最小的元素,然后每次入栈的时候比较入栈的元素是否为最小值。需要注意的一点是,出栈的时候需要考虑出栈的元素恰好为最小栈的情况。ps:本题用数组来当作栈,空间复杂度可能不如写好的stack好,因为数组不能动态扩容所以要尽量开的大一点。但是思路近似。class MinStack {public: /** initialize your data str...

2020-02-14 10:11:17 110

原创 Leetcode——20. 有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。本题可以用栈这个数据结构来考虑,输入一个左括号则压栈,输入为右括号时,栈顶出栈,比较是否与输入的右括号类型匹配,不匹配则报错。如果输入最后栈中还有元素则亦为不匹配。class So...

2020-02-14 09:30:29 108

原创 Leetcode——19. 删除链表的倒数第N个节点

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。几个注意的地方:理解这行代码指针本质上就是内存地址,soldier1=soldider就是将soldier的内存地址...

2020-02-13 20:40:56 77

原创 Leetcode——206. 反转链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution{public: ListNode* re...

2020-02-13 17:07:09 130

原创 C++快慢指针法判断回文串

简要概述快慢指针法(单向链表):设置两个指针,初始值均为头节点。快指针为一次前进两个节点。慢指针为一次前进一个节点。快指针走到头的时候慢指针应该恰好到中点位置,慢指针在前进过程中顺便将链表反向链接。快指针走到头之后,慢指针走到中点,此时慢指针继续向前走,而慢指针建立的反向链表则掉头往回走,此时判断两个链表是否值相等。该算法时间复杂度为O(n)当快指针走到为空(回文串为偶数个字符),或者其...

2020-02-13 14:30:27 993 1

原创 偏差-方差权衡(bias-variance-tradeoff)

过拟合发生在当我们有一个非常灵活的模型(模型具有高能力)时,其本质上是通过紧密拟合来记住训练数据。这样的问题是模型不仅学到了训练数据中的实际关系,还学习了存在的噪声。灵活的模型具有高方差(variance),因为学到的参数(例如决策树的结构)将随着训练数据的不同而变化很大。另一方面,因为对训练数据做出了假设,所以一个不灵活的模型具有较高的偏差(bias),(它偏向于对数据预先构思的想法)例如,线...

2020-02-11 11:12:44 721

原创 访问hadoop web It looks like you are making an HTTP request to a Hadoop IPC port.

某日,访问hadoop web输入localhost:8088出现It looks like you are making an HTTP request to a Hadoop IPC port.如果出现这段英文,这说明你的配置包括进程启动都没问题,你只是访问了进程中的非web端口hadoop3.0之后端口改成了9870,换一个端口试试吧!...

2020-02-08 16:59:08 2286

原创 ubuntu删去两个文件夹中的同名文件

for i in `awk 'a[$1]++' <(dir -l dir1 dir2 |awk '{print $NF}')`dorm -r dir1/$irm -r dir2/$idone为了友好初学者简单介绍一下怎么执行上述代码:1.新建一个脚本文件 如 vi jiaoben.sh2.粘贴上述代码,将dir1、dir2转化为所需路径3.chmod -x jiaoben...

2020-02-07 15:20:40 374

原创 启动pyspark报错 py4j.protocol.Py4JJavaError

我的报错类型是io.netty.buffer.PooledByteBufAllocator.defaultNumHeapArena()这一类错误一般是jar包冲突考虑到自己此前配置hbase的时候一股脑把hbase的bin文件全移到jar里面了,于是都删去。再次启动果然正常。...

2020-02-07 15:17:02 1970

原创 python3 map

python3的map和python2的map功能上有着较大的区别python2:类似这样1 >>> a = [1,3,5,7,9]2 >>> b = [2,4,6,8,0]3 >>> map(lambda x, y: x+y, a, b)4 [3, 7, 11, 15, 9]重要的是map的返回值是一个listpython3:...

2020-02-03 20:42:39 159

原创 极大似然估计、最大后验估计、贝叶斯估计的异同

本文主要是为了区分极大似然估计、最大后验估计、贝叶斯估计的异同。对三种方法的详细步骤不做阐述。贝叶斯公式:分母的全概率公式是用来求P(B)B为观测变量,A为待求参数。极大似然估计:极大似然估计认为A为一个常数,于是P(A)=1.而且它只需求出最大值所在的点,因此求导为0即可。解释一下‘’‘如抛硬币5正4负,设正面概率为p,则F(p)=a * p^5 * (1-p)^4式中p的...

2020-02-03 16:24:55 736

原创 pandas—drop

介绍一下pandas的drop函数有三个参数drop([ ],axis=0,inplace=True)【】为删除的索引axis为表示删除的是行还是列,0代表行,1代表列drop函数默认不改变原来的dataframe对象,而是返回改变后新的dataframe对 象,若inplace为true则为drop函数改变了dataframe对象自身。...

2020-02-01 15:43:13 236

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除