C++
鬼 | 刀
Nothing is impossible.
展开
-
C++软件开发工程师面试资料(C++语法知识点、数据库知识点、计算机网络知识点)
本人秋招准备的C++面试知识点,希望对各位有点帮助!!!!!!!!!!!!!!!下载地址:面试资料原创 2019-11-23 19:35:21 · 324 阅读 · 0 评论 -
庆祝一下访问量破10万,接下来学习、工作,不断更博客
原创 2019-11-12 01:31:47 · 215 阅读 · 0 评论 -
Leetcode——345.反转字符串中的元音字母——题解+代码实现(双指针思想、find函数使用)
一、题目编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"说明:元音字母不包含字母"y"。二、题解思路题解思路:双指针,即同时开始(正方向、反方向),正方向遍历,反方向遍历,碰到元音则交换位置,否则继续往下查找。三、代码实...原创 2019-06-02 18:09:36 · 352 阅读 · 0 评论 -
Leetcode——896.单调数列——题解+代码实现
一、题目如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有i <= j,A[i] <= A[j],那么数组A是单调递增的。 如果对于所有i <= j,A[i]> = A[j],那么数组A是单调递减的。当给定的数组A是单调数组时返回true,否则返回false。示例 1:输入:[1,2,2,3]输出:true示...原创 2019-05-29 19:57:13 · 308 阅读 · 0 评论 -
Leetcode——551.学生出勤记录|——题解+代码实现
一、题目给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:'A': Absent,缺勤 'L': Late,迟到 'P': Present,到场如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否会被奖赏。示例 1:输入: "PPALLP"输出: Tru...原创 2019-05-29 19:50:49 · 321 阅读 · 0 评论 -
Leetcode——661.图片平滑器——题解+代码实现
一、题目包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度(向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。示例 1:输入:[[1,1,1], [1,0,1], [1,1,1]]输出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]解释:...原创 2019-05-29 19:45:46 · 371 阅读 · 0 评论 -
Leetcode——1047.删除字符串中的所有相邻重复项——题解+代码实现(使用string中的删除操作:erase)
一、题目给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项...原创 2019-05-29 19:42:03 · 1823 阅读 · 0 评论 -
Leetcode——409.最长回文串——题解+代码实现(使用map)
一、题目给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。二、题解思路题解思路:回文数:从左往右...原创 2019-05-29 19:35:51 · 237 阅读 · 0 评论 -
Leetcode——383.赎金信——题解+代码实现(擅用map(其下的first、second)和使用auto进行for循环(新增功能))
一、题目给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)注意:你可以假设两个字符串均只含有小写字母。canConstruct(...原创 2019-05-29 08:29:05 · 632 阅读 · 0 评论 -
Leetcode——公平的糖果交换——题解+代码实现(擅用算法中的find函数对vector进行处理)
一、题目爱丽丝和鲍勃有不同大小的糖果棒:A[i]是爱丽丝拥有的第i块糖的大小,B[j]是鲍勃拥有的第j块糖的大小。因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组ans,其中ans[0]是爱丽丝必须交换的糖果棒的大小,ans[1]是 Bob 必须交换的糖果棒的大小。...原创 2019-05-29 08:25:18 · 153 阅读 · 0 评论 -
Leetcode——917.仅仅反转字符串——题解+代码实现(使用string中的insert注意越界)
一、题目给定一个字符串S,返回“反转后的”字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。示例 1:输入:"ab-cd"输出:"dc-ba"示例 2:输入:"a-bC-dEf-ghIj"输出:"j-Ih-gfE-dCba"示例 3:输入:"Test1ng-Leet=code-Q!"输出:"Qedo1ct-eeLg=ntse-...原创 2019-05-29 08:21:04 · 292 阅读 · 0 评论 -
Leetcode——264.丑数 ||——题解+代码实现(使用三指针进行求解)
一、题目(中等)编写一个程序,找出第n个丑数。丑数就是只包含质因数2, 3, 5的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1是丑数。 n不超过1690。二、题解思路题解思路1:在Leetcode——263.丑数的思想下进行循环,找到第n个丑数...原创 2019-06-05 20:38:36 · 507 阅读 · 0 评论 -
Leetcode——217.存在重复元素——题解+代码实现(有时候使用容器(例如map、set等)反而没有一般方法好)
一、题目给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true二、题解思路题解思...原创 2019-05-28 19:03:06 · 366 阅读 · 0 评论 -
Leetcode——263.丑数——题解+代码实现
一、题目编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数2, 3, 5的正整数。示例 1:输入: 6输出: true解释: 6 = 2 ×3示例 2:输入: 8输出: true解释: 8 = 2 × 2 ×2示例3:输入: 14输出: false 解释: 14 不是丑数,因为它包含了另外一个质因数7。说明:1是丑数。...原创 2019-06-05 17:03:37 · 559 阅读 · 0 评论 -
C/C++中各基本数据类型在16位、32位、64位系统下所字节(存储空间)大小
对比如下: 数据类型 16位系统(byte) 32位系统(byte) 64位系统(byte) 取值范围 char 1 1 1 -128~127 unsigned cha...原创 2019-05-28 12:22:29 · 10107 阅读 · 0 评论 -
Leetcode——844.比较含退格的字符串——题解+代码实现(使用vector的push_back和pop_back)
一、题目给定S和T两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。#代表退格字符。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。示例 3...原创 2019-06-02 18:17:07 · 452 阅读 · 0 评论 -
Leetcode——58.最后一个单词的长度——2种题解+代码实现(反向考虑、string的erase操作)
一、题目给定一个仅包含大小写字母和空格' '的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5二、题解思路题解思路1:遍历字符串,如果字符不是空格,就将字符叠加到中间变量temp上,遇到空格,则将上一次叠加后的单词存到vector中...原创 2019-06-02 18:23:14 · 196 阅读 · 0 评论 -
OpenCV中的minAreaRect函数中的角度的计算规则
minAreaRect的角度的计算我们都知道minAreaRect()返回的是包含轮廓的最小斜矩形(有方向的)。那么这个斜矩形的方向怎么计算出来的,它的取值是多少?通过官方文档得知它的角度是在(-90,0)之间的,在opencv上图片的圆点是在左上角的,所以它是逆时针旋转的,故此它的角度是小与0的。逆时针旋转第一条边与x轴的夹角就是矩阵的旋转角度。如图:矩阵的旋转角度是与矩阵...原创 2019-10-06 10:15:55 · 3272 阅读 · 3 评论 -
yolov3 裁剪识别的目标,并将剪裁的目标图片保存到本地
1 image.h中加入函数声明void save_cut_image(int px, int py, int ph, int pw, int no, image m_img, char **names, float cut_pro, int the_class);2 image.c中加入如下函数定义void save_cut_image(int px, int py, int ...原创 2019-09-27 22:22:21 · 5135 阅读 · 19 评论 -
鼠标在图片上画矩形(ROI)区域并保存ROI区域
#include <iostream>#include "opencv2/core/core.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"using namespace std;using namespace cv;bool draw;Mat src;...原创 2019-09-27 15:52:01 · 2520 阅读 · 0 评论 -
2019.9.7网易互娱——游戏研发笔试
1、第一题 AC#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;int main(){ int T; cin >> T; vector<int> num(T); ve...原创 2019-09-07 21:52:47 · 639 阅读 · 0 评论 -
智能指针shared_ptr的线程安全、互斥锁
智能指针和线程安全的问题<1> 智能指针shared_ptr本身(底层实现原理是引用计数)是线程安全的智能指针的引用计数在手段上使用了atomic原子操作,只要shared_ptr在拷贝或赋值时增加引用,析构时减少引用就可以了。首先原子是线程安全的,所有智能指针在多线程下引用计数也是安全的,也就是...原创 2019-08-18 13:21:45 · 8655 阅读 · 5 评论 -
C/C++ 技术面试基础知识总结分享 + 技术面试必备基础知识、Leetcode 题解、Java、C++、Python、后端面试、操作系统、计算机网络、系统设计
参考1:https://github.com/huihut/interview参考2:https://github.com/CyC2018/CS-Notes原创 2019-08-13 15:58:33 · 363 阅读 · 0 评论 -
Leetcode——237.删除链表中的节点——题解+代码实现(跟常规的思路有点区别,因为没有其前一个结点)
一、题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 --head =[4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -&g...原创 2019-06-03 20:03:10 · 282 阅读 · 0 评论 -
Leetcode——206.反转链表——题解+代码实现(递归+迭代版)
一、题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?二、题解思路题解思路1(迭代实现) 在遍历列表时,将当前节点(Node)的 next 指针改为指向前一个元素(No...原创 2019-06-03 20:00:24 · 1196 阅读 · 0 评论 -
C++——了解你的编译器支持了C++2.0(C++11)那些特性
原网址:C++11 compiler support shootout: Visual Studio, GCC, Clang, Intel翻译版本:距离我上次对C++11支持的不同编译器的比较已经有大半年了。这次我来根据这些预览版的编译器的文档来看下它们是如何堆砌起来的。GCC的下个版本是4.8,以及Clang即将到来的版本是3.3 。如果你使用Visual Studio 2012,你...原创 2019-06-08 19:00:39 · 1193 阅读 · 0 评论 -
Leetcode——342.4的幂——题解+代码实现(递归和循环实现)
一、题目给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4的幂次方。示例 1:输入: 16输出: true示例 2:输入: 5输出: false进阶:你能不使用循环或者递归来完成本题吗?二、题解思路题解思路1(递归):根据给定的整数,先判断其是否为0、1,若不是,则进行求余和除4取整判断,递归操作。 题解思路2(循环):先判断n...原创 2019-06-02 18:46:36 · 241 阅读 · 0 评论 -
Leetcode——231.2的幂——题解+代码实现(尝试递归、循环、找规律3种方法实现)
一、题目给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例1:输入: 1输出: true解释: 20= 1示例 2:输入: 16输出: true解释: 24= 16示例 3:输入: 218输出: false二、题解思路题解思路1:2的幂是2、4、8、16、32、64、128...(二进制是:0010、0100、1000、0001...原创 2019-06-02 18:42:43 · 217 阅读 · 0 评论 -
Leetcode——696.计数二进制子串——三种题解+代码实现(擅于挖掘巧妙的题解思路)
一、题目给定一个字符串s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们...原创 2019-06-02 18:36:43 · 439 阅读 · 0 评论 -
Leetcode——67.二进制求和——题解+代码实现
一、题目给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"二、题解思路题解思路:先根据两个字符串a和b的长度,将短的字符串在其前面插入0使得长度和长的字符串长度一...原创 2019-05-28 00:23:15 · 310 阅读 · 0 评论 -
Leetcode——1029.两地调度——题解+代码实现(使用multimap(可以重复key)、pair(固定key-value))
一、题目公司计划面试2N人。第i人飞往A市的费用为costs[i][0],飞往B市的费用为costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有N人抵达。示例:输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释:第一个人去 A 市,费用为 10。第二个人去 A 市,费用为 30...原创 2019-05-28 00:17:47 · 596 阅读 · 0 评论 -
C++——STL——array
array(1)定义格式 array<T,N> name; 它是定义了一个相当于标准数组...原创 2019-05-18 20:29:09 · 554 阅读 · 0 评论 -
Leetcode——371.两个整数之和——题解+代码实现
一、题目不使用运算符+和-,计算两整数a、b之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1二、题解思路题解思路:考虑有符号数左移操作溢出的情况三、代码实现C++代码实现class Solution {public: int getSu...原创 2019-05-24 14:40:30 · 169 阅读 · 0 评论 -
Leetcode——485.最大连续1的个数——题解+代码实现
一、题目给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含0和1。 输入数组的长度是正整数,且不超过 10,000。二、题解思路题解思路:定义最大连续1长度为max_mum,中间转换变量为sum,遍历数组,碰到1,就...原创 2019-05-24 14:37:28 · 353 阅读 · 0 评论 -
Leetcode——892.三维形体的表面积——题解+代码实现
一、题目在N*N的网格上,我们放置一些1 * 1 * 1的立方体。每个值v = grid[i][j]表示v个正方体叠放在单元格(i, j)上。返回最终形体的表面积。示例 1:输入:[[2]]输出:10示例 2:输入:[[1,2],[3,4]]输出:34示例 3:输入:[[1,0],[0,2]]输出:16示例 ...原创 2019-05-24 14:34:38 · 763 阅读 · 0 评论 -
Leetcode——268.缺失数字——题解+代码实现
一、题目给定一个包含0, 1, 2, ..., n中n个数的序列,找出 0 ..n中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?二、题解思路题解思路1:先求0-n这n+1个数相加的结果...原创 2019-05-24 14:30:37 · 284 阅读 · 0 评论 -
Leetcode——453.最小移动次数使数组元素相等——题解+代码实现
一、题目给定一个长度为n的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使n- 1 个元素增加 1。示例:输入:[1,2,3]输出:3解释:只需要3次移动(注意每次移动会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]二、题解思路题解思路:感觉是智力题...原创 2019-05-24 14:26:16 · 483 阅读 · 0 评论 -
Leetcode——794.旋转字符串——题解+代码实现
一、题目给定两个字符串,A和B。A的旋转操作就是将A最左边的字符移动到最右边。例如, 若A = 'abcde',在移动一次之后结果就是'bcdea'。如果在若干次旋转操作之后,A能变成B,那么返回True。示例 1:输入: A = 'abcde', B = 'cdeab'输出: true示例 2:输入: A = 'abcde', B = 'abced'...原创 2019-05-24 14:20:43 · 386 阅读 · 0 评论 -
Leetcode——167.两数之和 || -输入有序数组——题解+代码实现
一、题目给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11...原创 2019-05-24 14:16:52 · 231 阅读 · 0 评论 -
Leetcode——1.两数之和——题解+代码实现
一、题目给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...原创 2019-05-24 14:13:20 · 238 阅读 · 0 评论