size_t和int比较时注意符号问题! 今天在写kmp算法时出现了一个奇怪的问题:#include<iostream>#include<string>#include<vector>using namespace std;void getNextVal(vector<int>& next,string& t){ next[0] = -1; int i = 0; int j = -1; while (i < int(t.size()) - 1) { i
二分查找算法详解(经典二分和左右边界查找) 这篇文章主要讲解经典的二分查找算法以及二分查找算法的变种(左右边界的查找)。二分查找算法的基本思想:在有序表中,每次都取中间记录作为比较对象,若给定值与中间记录的关键字相等则查找成功,返回该关键字的索引;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上诉过程,直到查找成功,或者所有查找区域无记录,查找失败为止,返回一个值代表没有找到。
多数投票算法(Boyer-Moore Algorithm)详解 多数投票算法(Boyer-Moore Algorithm)给定一个无序数组,有n个元素,找出其中的一个多数元素,多数元素出现的次数大于一半,注意数组中也可能不存在多数元素,如果存在多数元素则返回该多数元素,否则返回-1。
模板参数为函数时的模板函数怎么写 我们知道模板加强了代码的复用性,那么模板参数为函数时的模板函数怎么写呢,下面介绍了普通函数为模板参数以及lambda函数为模板参数的模板的写法。#include<iostream>#include<vector>using namespace std;//普通函数int sum(const vector<int>& vec){ int ret = 0; for (int i = 0; i < vec.size(); i++) { re
MySQL数据库基础--排序检索数据 目录排序数据本文将讲授如何使用SELECT语句的ORDER BY子句,根据需要排序检索出的数据。如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。排序又分为升序排序(关键字ASC)和降序排序(关键字DESC)。排序数据...
vs里32位项目和64位项目的区别 由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件。1。编译程序根据需要选择不同的编译环境。x86和win32为32位程序,x64为64位程序,可以选择不同的编译条件形成不同位的软件。2。代码中的基本数据类型,会根据操作系统的位数来分类内存大小。如int型在32位操作系统下为4字节,在64位系统下为8字节。因此在64位上对int型数据操作,编译生成32位的程序,有可能导致int型越界,软件出现问题。3。32位的程序在64位操作系统上运行,由于64位操作系统的寻址和偏移问题,也
H.265/HEVC视频编解码中的预测编码--帧内预测和帧间预测 H.265/HEVC视频编解码中主要分为预测编码和变换编码两个大类。这篇文章主要介绍H.265/HEVC视频编解码中的预测编码部分的基本原理。
MySQL数据库基础--select简单检索数据 上节介绍了如何连接和登录MySQL,如何执行MySQL语言,获取数据库和表的信息。这节将介绍MySQL中最重要的部分,检索数据,可以说MySQL中select关键字的用的比例占90%以上,所以说学习好select关键字是非常重要的。它的用途是从一个或多个表中检索信息。检索单个列SELECT prod_nameFROM products;例:上述语句利用SELECT 语句从products 表中检索一个名为prod_name的列。所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数
MySQL数据库基础--使用MySQL 上节介绍了数据库的一些基本概念,这节将主要介绍如何连接和登录MySQL,如何执行MySQL语言,获取数据库和表的信息。连接选择数据库我们可以通过USE来选择我们需要使用的数据库,或者通过双击选择数据库。比如要使用student这个数据库,可以使用:输入:USE student;运行完student数据库字体变为粗体。了解数据库和表显示数据库show database...
MySQL数据库基础--基本术语和概念 1、SQL:Structure Query Language,即结构化查询语言,是目前广泛使用的关系数据库标准语言。2、DDL:Data Definition Language,即数据定义语言,定义数据库涉及的各种对象,定义数据的完整性约束、保密限制等约束。3、DML:Data Manipulation Language,即数据操作语言,实现对数据的操作,数据基本操作有两类,检索(查询)和更新(插入、删除和更新)。4、DCL:Data Control Language,即数据控制语言,实现对数据库的控
VS2017代码在debug模式下正常运行,但是release模式崩溃 今天在vs2017上调试代码发现一个令人疑惑的bug,代码在debug模式下能完美运行,但是release模式下崩溃,令人费解,最后通过不断的调试发现是debug模式和release模式下变量的默认初始化不同造成的,bool型变量在release模式下是默认初始化为true,debug模式下是默认初始化为false。导致了最后的bug,这种bug难以发现,但是我们可以不让其默认初始化,最好的方式就是对每一个类都自己写构造函数,每一个变量都进行人为初始化。为了防止再遇到类似的问题特别记录一下。...
常见排序算法之快速排序原理及递归非递归版本代码 目录快速排序原理复杂度分析选择排序代码1.递归版本2.非递归版本测试及结果测试结果快速排序原理之前介绍过三种基础的排序算法以及它们之间的比较:冒泡排序,选择排序和直接插入排序,我们知道它们的时间复杂度都是O(n2),那是不是所有的算法的时间复杂度都是O(n2)呢?当然不是!下面我们介绍的快速排序之所以叫快速排序就是因为目前已有的排序算法中,快速排序的时间复杂度是最小的。快速排序的基本思想:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分小,则可以分别对这两部分记录继续进行排
排列组合之子集及其变形题--字节跳动原题 字节跳动在2020年8月的一道原题:在n个正整数中,任意挑选k个(不可重复挑选,0<=k<=n)数字的和记为sum,另有一个正整数m,请问sum%m最大是多少?输入输出#include <iostream>#include <vector>using namespace std;int n;vector<vector<int>> ans;void backtrack(int first, vector<int>&
用python实现多帧点云文件的播放 我们可以通过meshlab去打开单帧的点云文件,但是不能播放多帧的点云,因此通过python库进行播放,下面是详细代码。python代码#引入python库numpy和open3d,可以通过pip install命令安装import osimport numpy as npimport open3d as o3d#打开文件路径files = os.listdir("F:\\pointcloud\\DataSet\\GPCC_DataSet\\Cat3_Frame-Based\\Ford_01_
由二叉树的前序遍历和中序遍历得到叶子节点的个数--字节跳动原题 由二叉树的前序遍历和中序遍历得到叶子节点的个数题目第一行输入节点数量,第二行输入二叉树前序遍历的结果,第三行输入二叉树中序遍历的结果,要求输出叶子节点的数量输入31 2 32 1 3输出2思路分析可以先由二叉树的前序遍历和中序遍历构建出一棵二叉树,然后在遍历二叉树得到叶子节点的数量!源码#include <fstream>#include <iostream>#include <algorithm>#include <vector&
利用python删除指定文件或文件夹 如果你跑了很多数据,需要删除一些文件或者文件夹,那么你可以使用python来帮忙。下面提供两个版本的代码,分别对应删除文件或者文件夹的版本。记录一下代码顺便分享一波。代码中有详细的解释:删除指定后缀的文件版本import osimport shutil# GetFilePath函数是用来递归遍历文件夹里面所有内容,包括文件夹和文件,将它们分开放到两个列表# 两个列表:fileList 是放文件,dirList 是放文件夹def GetFilePath(rootPath, fileList,
回溯法之迷宫问题(华为笔试题) 目录回溯法原理回溯法之迷宫问题代码回溯法原理可以参考我的另一篇博客。回溯法之迷宫问题2020/8/12日的华为笔试出了一道笔试迷宫问题的改版,题目大致的意思如下:有一条刚贴地砖的路,强迫症小明走路每次走的步长一样,并且只走贴了地砖的地方,如果用1代表贴了地砖,用0代表没有地砖,问小明能否从左上角出发走到终点右下角。例题:输入23 51 0 1 0 00 0 0 1 00 0 1 0 1输出true其中2是步长,即小明一次走两步,3和5分别代表行数和列数。下面3行5列是代表有
回溯法之N皇后问题--得到多解以及只得到一个合适解 目录回溯法原理回溯法之N皇后问题代码(C++实现)结果回溯法原理具体的原理可以看这篇博客。写的非常好,这里引用一下原文。回溯法有通用解法的美称,对于很多问题,如迷宫等都有很好的效果。回溯算法实际上一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回(也就是递归返回),尝试别的路径。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。回溯法说白了就是穷举法。回溯法一般用递归来解决。回溯法一般都用在要给出多个可以实现最终条件