自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 剑指offer——C++

剑指3classSolution{public:intfindRepeatNumber(vector<int>&nums){intlength=nums.size();if(length<=0){return-1;}for(inti=0;i<length;++i){if(nums[i]<0||nums[i]>...

2020-10-15 09:37:06 324

原创 阿姆斯壮数

在3位的整数中,形如153=13+53+33这样的数称为阿姆斯壮数。#include<iostream>using namespace std;int main(){ int a,b,c; int input; for(input=100;input<=999;inupt++){ a=input/100; b=(input%100)/10; c=input%10; if(input=a*a*a

2020-09-25 10:13:31 444

原创 2020-9-12 招银网络科技面经

1、你的项目和信息安全有关系,那介绍一下项目2、项目中有没有用到数据加密(可能我介绍的项目和面试官想要的结果不一样,还没说完就终止了,不过面试官很有礼貌)3、项目中用到了二叉树遍历,用熟悉的语言写一下4、问答题:a=5;b=7;c=0; c=a+++b;那么c为多少?我回答125、编程题:将一个字符串转换成数组,字符串含有字母和数字,刚开始用了join,面试官说想看内部实现,我就用了数位和(还没搞明白)6、用过数据库吗(没有)7、介绍一下堆和栈的区别,以及他俩各自存储什么数据差不

2020-09-12 10:05:12 8572

原创 基础算法:快速排序和冒泡排序和堆排序和数组去重

冒泡排序:重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近

2020-09-10 10:42:35 174

原创 C++总结

1、通过标准输入设备向输入流输入一行字符串有两种方式:get函数(一个一个读)和getline函数(读一行)int get(int x)——这个函数是自定义函数,函数名为get,传入一个int类型的参数x,返回值为int类型2、for循环语句,两个分号三个句子,for (; x; x /= 10)第一个句子是初始化用的,如果没有初始化的必要,就视为空语句,加上分号。第二个句子作为判断条件,如果没有判断条件,也视为空语句,后加一个分号。这种情况,会无限循环,相当于while(1)。如果for的

2020-09-06 22:26:53 488

原创 剑指 Offer 13. 机器人的运动范围——广度优先搜索BFS,计算一个数的数位之和

地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?...

2020-09-06 19:56:34 190

原创 深度优先算法DFS和广度优先算法BFS

DFS概念:深度优先搜索算法(Depth-First-Search),是搜索算法的一种。它沿着树的深度遍历树的节点,尽可能深的搜索树的分 支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发 现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。DFS属于盲目搜索。DFS步骤:深度优先遍历图算法步骤:1. 访问顶点v;2. 依次从v的未被访问的邻接点出发,对图

2020-09-06 19:41:16 214

原创 剑指 Offer 12. 矩阵中的路径——回溯法

请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[["a","b","c","e"],["s","f","c","s"],["a","d","e","e"]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行..

2020-09-05 11:00:37 239

原创 9.2华为机试——第三题:0-1背包

你在一家家具公司工作,需要将家具发往全国各地,为此,你需要将箱子装上卡车,每个箱子的尺寸和价值各不相同,你需要尽可能利用每辆卡车的空间,假设卡车空间大小为K,给定一个数组W,它的第i个元素表示第i个箱子的尺寸,给定一个数组V,它的第i个元素表示第i个箱子的价值,为此,你将如何选择要装上卡车的箱子在满足卡车的空间占用最大的前提下,是卡车运输的箱子总价值最大?输入描述参数1:卡车空间K(1<K<1000)参数2:箱子个数N(1<N<1000)参数3:每个箱子尺寸w(1&l

2020-09-04 10:28:24 1131 3

原创 9.2华为机试——第二题:陆地岛屿,在二维数组中找区域,DFS深度优先遍历方法

小明最近看修真小说看多了,晚上做梦都梦到自己变成了掌控一方地域的上古大能,这片地域湖泊星罗棋布,数不胜数。他神识一释放,这片地域的二维平面地图就展现在他的脑海中,地域被切割成一个M*N的二维矩阵,有水的格子标记为字符“S”,没水的格子标记为“H”。你能快速帮小明计算出湖泊的个数吗?说明:被“H”和边界包围起来的若干个相邻“S”成为一个湖泊。输入描述:第一行输入M,N(逗号分隔),代表M* N的二维矩阵。然后接下来输入M个字符串,每个字符串都是N个字符,字符只能是“S”或者“H”取值范围:0&

2020-09-04 10:13:01 1049

原创 9.2华为笔试——第一题:分糖果

1、幼儿园小朋友站成一列,按位置1、2、3....顺序编号,每个小朋友都拿了若干糖果,请找出3个小朋友,他们拿着相同颜色的糖果,且他们拿的糖果总数不少于其他任何小朋友(拿相同颜色的糖果)的糖果总数,如果存在多组这样的小朋友,则找出位置编号最小的小朋友所在的组。设置的前提条件:(1)每个小朋友最少拿一颗糖,最多拿1024颗糖,且只拿一种颜色的糖果;不存在两个小朋友拿相同颜色相同树木的糖果。(2)糖果颜色只有2种:1为红色,2为蓝色。输出描述:拿相同颜色且糖果总数最多的3位小朋友位置编号,糖

2020-09-04 10:02:52 2807

原创 剑指 Offer 11. 旋转数组的最小数字——二分查找法

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。思路:用简单的遍历达不到面试官的要求,并且没有利用到旋转数组,且复杂度为O(n)。旋转之后的数组实际上可以划分为两个排序的子数组,而且前面的子数组的元素都大于或者等于后面子数组的元素;并且最小的元素刚好是这两个子数组的分界线。在排序中我们可以用二分查找法来实现O(logn)的...

2020-09-03 16:26:58 112

原创 剑指 Offer 10- II. 青蛙跳台阶问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。思路:当n>2时,第一次跳的时候就有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);二是第一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。因此,n级台阶的不同跳法的总数f(n)=f(n-1)+f(n-2),.

2020-09-03 15:50:51 85

原创 剑指 Offer 10- I. 斐波那契数列

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。方法一:递归(效率低,超出时间限制)var fib = function(n) { if(n<=0){ return 0; } if(n==1){ ...

2020-09-03 14:59:42 106

原创 剑指 Offer 07. 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字var buildTree = function(preorder, inorder) { if(preorder.length==0){ return null; } if(preorder.length==1){ return new TreeNode(preorder[0]); //建二叉树,根节点 } co

2020-09-03 14:43:11 92

原创 剑指 Offer 09. 用两个栈实现队

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )思路:两个栈(后入先出)实现一个队列(先入先出)插入一个元素:直接在stack1中压入删除一个元素的步骤:当stack2不为空时,在stack2的栈顶元素是最先进入队列的元素,可以弹出;当stack2为空时,我们把stack1中的元素逐个弹出并压入stack。由于先进入队列的元.

2020-09-03 14:20:20 144 1

原创 HTTP状态码

1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作被成功接收并处理 3** 重定向,需要进一步的操作以完成请求 4** 客户端错误,请求包含语法错误或无法完成请求 5** 服务器错误,服务器在处理请求的过程中发生了错误 下面是常见的HTTP状态码:200 - 请求成功 301 - 资源(网页等)被永久转移到其它URL 404 - 请求的资源(网页等)不存在 500 - 内部服务器错误2XX——表明请求被正常处理了3XX—

2020-08-30 11:00:16 96

原创 从输入url到页面显示内容的过程发生了什么

一、构建请求浏览器通过输入的url来解析要请求的是什么协议,构建请求报文,这里要构建的就是HTTP请求报文。HTTP请求报文包括报文首部和报文主体,对请求报文来说,报文首部包括请求行和各种首部字段;而对响应报文来说,报文首部包括状态行和各种首部字段。请求行:GET/HTTP/1.1 (请求方法和相应的协议)状态行:HTTP/1.1 200 OK (相应的协议和状态码)各种首部字段:比如Cache-Control和Expires,还有If-No-Match,If-modified-sinc

2020-08-30 10:53:20 150

原创 强缓存和协商缓存

缓存分为两种:强缓存和协商缓存,根据响应的header内容来决定。 获取资源形式 状态码 发送请求到服务器 强缓存 从缓存取 200(from cache) 否,直接从缓存取 协商缓存 从缓存取 304(not modified) 是,通过服务器来告知缓存是否.

2020-08-30 10:17:48 5154

原创 7-3 首页轮播图

借助第三方的轮播插件,npm install vue-awesome-swiper@2.6.7--save在全局使用vue-awesome-swiper插件:src目录下的main.js引入以下四个:在具体小组件中使用,要复制以下代码(他们的功能分别是):显示轮播图下面的点点、显示上页按钮、显示下页按钮、显示下划线接下来,在Home下的components下创建一个Swiper.vue来做轮播图让它做循环输出:对swiper-slide用v-for做循环,遍历list做.

2020-08-27 10:01:34 370

原创 7-2 引入并应用iconfont图标,完善header

一、在gitee麦子商城下载得到如下:引入以上文件:进入src目录下的asstes目录下的styles目录下创建一个文件iconfont,将以上文件中的字体文件放入(iconfont.css放的位置与iconfont是平级),修改iconfont.css中的引入路径至此,iconfont就可以被引入了,那如何引入呢:在main.js中(因为各个页面都需要引入iconfont,所以不如将iconfont的引用放在main.js中)引入成功,即可在页面上使用,如何使用:在hea.

2020-08-26 11:07:30 426

原创 笔试中常用的函数:parseInt(数值字符串转数值),split(字符串转字符串数组),join(数组转字符串),sort(数字排序,字符串排序)

1、parseInt(str)函数可解析一个字符串,并返回一个整数。——用于数值型字符串,“1”、"0x12"2、str.split()方法用于把一个字符串分割成字符串数组。如果把空字符串 ("") 用作分割点,那么 str 中的每个字符之间都会被分割。stringObject.split(separator,howmany):(分割点,返回数组的最大长度)在新生成的数组中不包括分割点。注意:分割之后的数组字符串是由,分开的1、在本例中,我们将按照不同的方式来分割字符串:<scr

2020-08-26 10:39:09 490

原创 7-1首页header区域开发

首页的整体设计图,依照设计图设计网页:量上方盒子的尺寸——用stylus(CSS辅助开发的工具,类似于less或者sass)可以帮助我们在Css中使用变量,方便我们快速编写css代码——通过终端打开项目所在的文件夹,在详谬中安装几个依赖包:stylus : npm install stylus --savestylus loader : npm install stylus-loader --save安装完毕,重新启动项目:npm run startvue 的基础模板:&lt.

2020-08-25 11:20:10 477

原创 美团笔试题1:用正则表达式

判断用户民的合法性:用户名的首字符必须是大写字母或者小写字母;用户名只能包含大小写字母、数字;用户名需要包含至少一个字母和数字。如果用户名合法,请输出“Accept”,反之输出“Wrong”。 <script> //用户名首字母必须是大写或者小写字母,用户名只能包含字母和数字,用户名至少包含一个字母和数字 while(n=parseInt(readline()).trim()){ //trim()去掉字符串前后空格 for(

2020-08-22 17:30:46 478 3

原创 商汤科技校园招聘笔试题1

给定一个字符串序列,包含字母,数字以及空格,请问该字符最多能组成都少个"Good"。字符串区分大小写,每个字符只能使用一次,且不能调换字符顺序。输入:ggoodood 输出:0输入:Goo23good Gooddd 输出:2输入:123 GoodoodGGoooddjfhjdGGooodkdggggGood23\n 输出5思路:统计G的个数,统计o的个数(并判断已有的G的个数是否最少为1,否则continue结束本次循环),判断d的个数(并判断已有的G的个数中是否最少为1和已有的...

2020-08-20 22:29:06 359

原创 剑指 Offer 06. 从尾到头打印链表——每次让第I个元素插入到链表头部——链表和数组的区别——while和for

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。解题思路:解决链表反转可以用循环解决,而核心思想便是在循环中每次只让第I个元素插入到链表的头部。在循环之前链表长这样:1-> 2-> 3-> 4-> 5第一次循环:2-> 1-> 3-> 4-> 5第二次循环:3-> 2-> 1-> 4-> 5如何写代码来解决?利用数组的unshift()方法,在数组的开头加一个或多个元素.

2020-08-19 13:31:00 158

原创 剑指 Offer 05. 替换空格——正则表达式,str.replace方法

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。方法一:正则,replace方法var replaceSpace = function(s) { return s.replace(/ /g,"%20");};

2020-08-18 22:35:51 167

原创 剑指 Offer 04. 二维数组中的查找 && 二维数组定义和初始化总结

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。方法:降维var findNumberIn2DArray = function(matrix, target) { var row=matrix.length; if(!row){ return false; } var col=matrix[0].length;

2020-08-18 17:10:35 131

原创 剑指offer03:数组中重复的数字——obj[num[i]]=1而不能用==1 && 用ES6中的set方法

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。1、哈希表注意到只要判断数字是否重复,不用关系数字的顺序,只需要hash表存储之前遍历的,如果后续遍历已经在hash表上,就返回(1)用一下key值var findRepeatNumber = function(nums) {var obj={};for(i=0;i<nums.length;i++

2020-08-18 16:12:09 290

原创 二、项目代码结构

src:main.js:入口文件App.vue:根组件Router——>index.js:放所有路由components:放项目中的小组件assets:放图片类资源config:index.js:基础配置信息dev.env.js:开发环境的配置信息prod.env.js:线上环境的配置信息build:放项目打包的webpack内容...

2020-08-18 10:53:15 399

原创 一、项目预热

项目环境准备1、安装node.js:LTS下的windows——>打开终端——>输入node-v安装成功——>npm-v工具安装成功2、打开github——>创建仓库“travel”存储代码——>本地线上代码关联——>本地安装git——>终端git --vision——>公钥私钥大同线上线下——>克隆git仓库地址——>终端:git clone地址3、创建vue项目4、本地上传到仓库基本的git操作:本地已有项目提交到git

2020-08-18 10:48:28 357

原创 非父子组件间的传值——使用发布订阅模式

目的:点击Dell,lee变成Dell;点击Lee,Dell变成Lee<body> <div id="root"> <child content="Dell"></child> //1(1 2 3) <child content="Lee"></child> <div>{{total}}</div> </div> <sc

2020-08-18 10:07:02 102

原创 父子组件的数据传递2:父组件给子组件传值,props

1、父组件通过属性形式(props)给子组件传数据(单向数据流——子组件不能直接改变父组件传递的值——克隆副本,改副本)2、子组件通过事件触发给父组件传值<body>//根组件 <div id="root"> <!--1、父组件给根组件传参:count="3"--> <counter :count="3" @inc="handleIncrease"></counter> //子组件

2020-08-18 09:47:16 296

原创 父子组件的数据传递1:子组件给父组件传值,事件绑定

利用“ref引用”获取DOM节点(vue中很少操作,基本都是绑定事件)this.$ref.ref的值1、自组件点击数字+12、父组件中total=两个自组缉拿count的和——>发布订阅 this.$emit("change")——子组件改变,向外触发change时间子组件通过事件触发的方式向父组件传数据<script>//根组件 <div id="root"> //ref获取DOM节点 父组件在这监听子组件传来的事件

2020-08-18 09:27:45 383

原创 剑指offer40:最小的k个数

方法一:直接排序,不知道为什么,这两步分开写就不对var getLeastNumbers = function(arr, k) { return (arr.sort((a,b)=>a-b).slice(0,k));};方法二:

2020-08-17 15:11:20 92

原创 剑指offer39:数组中出现次数超过一半的数字(利用对象的key值的唯一性,存在加一,不存在等于一)

创建一个对象进行计数,因为对象key值不能重复所以可以使用此特性进行计数。如果存在就让obj[value]+1 否则就让obj[value]等于1var majorityElement = function(nums) { var len=Math.round(nums.length/2); var obj={}; for(i=0;i<nums.length;i++){ if(!obj[nums[i]]){ obj[nums[i]]

2020-08-17 12:05:04 122

原创 剑指offer48:最长不含重复字符的子字符串

方法一:滑动窗口,双指针head,tail如果 s 的长度小于等于 1,直接返回长度;初始化最大值 max = 1;使用 head 指针指向位置 0,tail指针指向位置 1:若 s 的 head 到 tail 前的字符中存在 tail,则将 head 指针移动到该滑动窗口中重复 tail 的位置后面一位,tail 往后移动一位;若不存在,则 tail 往后移动一位,这里的 tail 移动后肯定比前一步 tail 移动的长度大,所以在这里设置与 max 比较。直到 tail 跑到 s 外面,

2020-08-17 11:37:48 108

原创 求Int型正整数在内存中存储时1的个数

num.toString(2)——将数字转为二进制。注意:前提是数字,其次是括号内要写2。题目描述输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入描述:输入一个整数(int类型)。输出描述:这个数转换成2进制后,输出1的个数。var line=parseInt(readline()).toString(2);var count=0;for(i=0;i<line.length;i++){ if(line[i]==1){ ..

2020-08-14 19:46:19 178

原创 字符串的连接最长路径查找

arr.sort()——可以对字母按照字典自动排序哦!题目描述给定n个字符串,请对n个字符串按照字典序排列。输入描述:输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。输出描述:数据输出n行,输出结果为按照字典序排列的字符串。var n=parseInt(readline());var arr=[];for(let i=0;i<n;i++){ var line=readline();

2020-08-14 19:39:55 174

原创 句子逆序(类似于提取不重复整数的思维)

题目描述将一个英文语句以单词为单位逆序排放。例如“Iamaboy”,逆序排放后为“boyaamI”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符输入描述:将一个英文语句以单词为单位逆序排放。输出描述:得到逆序的句子。var line=readline();var lines=line.split(" ");var str="";for(i=lines.length-1;i>=0;i--){ str+=lines[i]+" ";...

2020-08-14 17:21:32 115

空空如也

空空如也

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

TA关注的人

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