自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱科比的博客

来了你就不想走

  • 博客(19)
  • 收藏
  • 关注

原创 C++ 中vector的使用方法(深度学习)

vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:#include<vector>;一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何...

2019-05-28 22:39:10 3135

原创 【面试经典】寻找缺失的整数(找出一组数中出现次数为奇次的数)(按位与运算和异或运算的加强应用)

面试官:假设在一个无序数组中有若干个整数,范围是1~100,其中有一部分数字重复出现,有的出现次数是奇次,有的是偶数次,现在需要你从其中找出出现次数是奇次的数。(保证时间和空间复杂度最优)1,我们先来学习常用的几种操作符以及他们的用法,这道题的解法中要用到。6种位操作符:(1) & :按位“与”——仅当两个操作数为1时,结果为1,否则为0。如:1000 1000 & 1...

2019-05-27 21:11:38 392

原创 【面试经典】求解金矿问题(动态规划初级)

问题:有一个国家发现了5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人数也不同(情况如下图)金矿编号 黄金储量 需要人数 1 400 5 2 500 5 3 200 3 4 300 4 5 350 3 首先,动态规划方法适合的题型4个基本特点是:1、最优子结构,当前一个状态得到最佳解时,当前状...

2019-05-26 23:24:27 2852 2

原创 【面试经典】高精度相加(大整数相加)

在常规计算中我们遇到的数都可以在int范围或者是long int范围内进行计算,但是我们如果遇到比较大的数字,比如说50为数字相加,我们应该怎么办?这时候,我们就想想小时候我们在做加法计算的时候,老师教我们利用列竖式的方法进行计算,而这个算法就是回归以前的计算过程。#include<iostream>#include<cmath>#include<cst...

2019-05-26 15:46:04 269 1

原创 【面试经典】求删去K个数字后的最小值(贪心算法)

面试官:给出一个整数,从该整数中去掉K个数字,要求剩下的数字形成的新整数尽可能小假设给出一个整数1593212,删除三个数字,新整数的最小情况是121230200,删去一个数字,新整数的最小情况是200解题思路:这个题目要求我们删除K个数字,我们不妨把问题简化一下,如果只删除一个数字,如何让新整数的值变得最小?这时我们可能会想到优先删除这组数字中最大的数字,但是这是不对的,举例...

2019-05-25 22:23:00 2755 5

原创 【面试经典】寻找全排列的下一个数(字典序算法)

代码展示://字典树算法#include<iostream>// #include<cmath>// #include<algorithm>using namespace std;void swap1(int arr[] ,int a,int b){ int temp=arr[a]; arr[a]=arr[b]; arr[b]=temp...

2019-05-25 16:38:47 527 1

原创 【面试经典】利用栈实现队列

利用栈实现队列做这个题首先你得知道栈和队列的特点栈的特点是先入后出,出入元素都在同一端 队列的特点是先入先出,出入元素在不同的两端(队头和队尾)思路:我们利用两个栈实现队列,可以让其中一个栈模拟队列的入口,一个栈模拟队列的出口让元素1,2,3入队栈A 1 2 3 栈B 2....

2019-05-24 18:19:23 234

原创 【面试经典】最小栈的实现(小三转正)

1,最小栈问题题目描述:实现一个栈,该栈的出栈和入栈,取最小值的三个方法的时间复杂度都是o(1)这道题目主要考察你对栈的出入情况是否真正理解。解题思路:创建一个辅助栈,我们这里定义为栈B,同时定义一个主栈,栈A 当第一个元素进入栈A时,让新元素也进入栈B,因为此时的最小元素就是第一个元素 栈A 4 栈B 4...

2019-05-24 13:10:40 175

原创 【面试经典】如何判断一个数是否为2的整数次幂(三种解法)

1,先来看常规解题代码先设定一个变量temp,然后给temp每次乘2最后与给出的数进行比较代码展示void ispower(int num){ int temp=1; while(temp<=num){ if(temp==num){ cout<<"is"<<endl; break; } else{...

2019-05-23 23:11:11 2874 2

原创 算法之折半查找

介绍折半查找,又称作二分查找。这个查找的算法的特点,就是,要求数据要是有序的。1 ,存储结构一定是顺序存储2 ,关键字大小必须有序排列算法思想:折半查找只能在有序数列中进行,将待查找的数据与有序数列(递增)中间的元素进行比较,如果相等,则找到;如果待查找的数据大于中间的元素的值,那么再从数组的后一半元素中进行查找,否则,从前一半元素中进行查找;若折半后都找不到,则输出“没找着”等提...

2019-05-20 22:34:42 1731

原创 归并排序和计数排序以及计数排序的优化(小博学习算法第五天)

1,计数排序计数排序是特殊的排序,这种排序不需要进行元素比较,对于计数排序而言,该排序算法是利用数组下标来确定元素的位置的。 让我们来看一个例子 假设数组中有20个随机整数,取值范围是0-10,要求利用最快速度把20个数进行从小到大排序。如何给这些无序的数组排序呢?考虑到这些数只能够在1,2,3,4,5,6,7,8,9,10这11个数中取值,可以根据此,建立一个长度为11的数...

2019-05-16 22:42:41 390

原创 堆排序和插入排序(小博学习排序第四天)

1,堆排序堆排序的算法步骤;把无序数组构建成一个二叉堆,需要从小到大排序,则构建最大堆;需要从大到小排序,则构建小顶堆。 循环删除堆顶元素,替换到二叉堆的末尾,调整堆产生新的堆顶。下来我们讲解他的实现过程构造堆将无序数组构造成一个大根堆(升序用大根堆,降序就用小根堆)假设存在以下数组主要思路:第一次保证0~0位置大根堆结构(废话),第二次保证0~1位置大根堆结构,第...

2019-05-15 22:04:34 667

原创 快速排序(双边扫描和单边扫描)(小博的第三天)

同冒泡排序一样,快速排序也属于交换排序,通过交换元素之间的位置来达到排序的目的。不同的是,冒泡排序在每一轮中只把1个元素冒泡到数列的一端,而快速排序则在每一轮挑选一个基准元素,并让比他大的元素移动到数列一边,比他小的移到数列的另一边,从而把数列拆解成两个部分。这种思路就叫做分治法。快速排序的好处:假如给出一个8个元素的数列,一般情况下,使用冒泡排序需要比较7轮,每一轮把一个元素移动到数列的...

2019-05-09 23:02:23 1493

转载 数据结构与算法(JAVA版)

转自:http://blog.csdn.net/column/details/datastructureinjava一、数据结构详解(1)数据结构与算法概念解析(2)数据结构之数组(3)数据结构之栈(4)数据结构之队列(5)数据结构之链表(6)数据结构之二叉树(7)数据结构之霍夫曼树(8)数据结构之AVL树(9)数据结构之2-3-4树与2-3树(10)数据结构之B树、B+树、...

2019-05-09 22:14:04 882 3

原创 鸡尾酒排序(小博学习排序第二天)

鸡尾酒排序冒泡排序的每一个元素就像小气泡一样,根据自身大小,一点一点的向数组的一侧移动,算法的每一轮都是从左到右比较元素,进行单向位置的交换的。那么鸡尾酒排序做了怎样的优化呢?鸡尾酒的元素比较和交换过程都是双向的如图:是冒泡排序的过程冒泡排序的过程 2 3 4 5 6 7 1 8 2 3 4 5 6...

2019-05-07 16:20:28 239 4

原创 冒泡排序和选择排序及其他们的优化

1.冒泡排序冒泡排序(BubbleSort),又被称为气泡排序或泡沫排序。它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾!采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!普通的冒泡排序...

2019-05-06 22:43:38 593 2

原创 一文囊括基本STL常用容器函数

//让我来学习一波STL,以后绝对可以用到的#include<bits/stdc++.h>#include<iostream>#include<stack>#include<queue>#include<vector>using namespace std;int main(int argc, char const *ar...

2019-05-06 11:31:24 174 5

原创 数据结构之最短路径(迪杰斯特拉算法和弗洛伊德算法 )

1.在带权有向图G中,给定一个源点v,求从v到G中的其余各顶点的最短路径问题,叫做单源点的最短路径问题。在常用的单源点最短路径算法中,迪杰斯特拉算法是最为常用的一种,是一种按照路径长度递增的次序产生最短路径的算法。单源点的最短路径问题:给定带权有向图G和源点v,求从v到G中其余各顶点的最短路径。我们用一个例子来具体说明迪杰斯特拉算法的流程。定义源点为 0,dist[i]为源点 ...

2019-05-05 20:48:53 9076 1

原创 数据结构之关键路径(邻接表):详细阐述每一步

关键路径与AOV-网相对应的时AOE-网即边表示活动的网。AOE-网时一个带权的有向无环图,其中顶点表示事件,弧表示活动,权表示活动的时间。通常,AOE-网可用来估算工程的完成时间。如图:一个AOE-网由于在AOE-网中只有一个开始点和一个完成点,故在正常的情况下(无环)下,网中只有一个入度为零的顶点和一个出度为零的顶点。接下来进入正题,神魔是关键路径:路径最长的路径叫关键路径...

2019-05-04 14:59:05 1983

空空如也

空空如也

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

TA关注的人

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