自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 利用二进制运算实现加法(不使用四则运算)

这两天去参加面试碰到的一个题,题不难,就是忘记了。题目: 要求求两个整数之和,并且不得使用+、-、*、/ 四则运算符号。解析: 很明显这个题要用二进制运算去解决。二进制的按位相加实际等效于异或。二进制的每位的进位计算等效于按位与,然后左移。进位加上按位相加结果就是最终结果。 重复使用前两步,直到没有进位为止。代码如下:#include <stdio.h>int A...

2019-09-26 19:56:09 644

转载 Linux编译命令——make -j8 提升编译速度

项目越来越大,每次需要重新编译整个项目都是一件很浪费时间的事情。Research了一下,找到以下可以帮助提高速度的方法,总结一下。1. tmpfs有人说在Windows下用了RAMDisk把一个项目编译时间从4.5小时减少到了5分钟,也许这个数字是有点夸张了,...

2019-05-25 20:59:19 3471

原创 分组统计:map和set的结合使用

题目描述:先输入一组数,然后输入其分组,按照分组统计出现次数并输出,参见样例。输入描述:输入第一行表示样例数m,对于每个样例,第一行为数的个数n,接下来两行分别有n个数,第一行有n个数,第二行的n个数分别对应上一行每个数的分组,n不超过100。输出描述:输出m行,格式参见样例,按从小到大排。输入173 2 3 8 8 2 31 2 3 2 1 3 1输出1={2=0,3=2...

2019-03-24 08:58:33 588

原创 单词识别:map 统计文中出现单词个数

题目描述:输入一个英文句子,把句子中的单词(不区分大小写)按出现次数按从多到少把单词和次数在屏幕上输出来,要求能识别英文句号和逗号,即是说单词由空格、句号和逗号隔开。输入描述:输入有若干行,总计不超过1000个字符。输出描述:输出格式参见样例。输入A blockhouse is a small castle that has four openings through which t...

2019-03-23 18:38:53 593

原创 完数与盈数:求最大公约数 和 自增变量的方式让数组动态增长

题目描述:一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1,则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出2 到60 之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 …(ei 为完数) G: g1 g2 g3 …(gi 为盈数)知识点:求一个数的公因数,应该很快速写出来// 求 n 的公因数之和(不包括n本身)for( int...

2019-03-22 13:51:01 182

原创 牛客网 - 邮票(set的遍历)

题目描述某人有8 角的邮票5 张,1 元的邮票4 张,1 元8 角的邮票6 张,用这些邮票中的一张或若干张可以得到多少中不同的邮资?知识点:注意set的遍历方法:set<类型>::iterator it;刚开始想怎么可以得到任意面额的组合,后来想麻烦了,本来数据量也不大,所以三个 for 嵌套无所谓的。#include <iostream>#include ...

2019-03-21 21:44:18 208

原创 牛客网 - 反转整数

问题描述:打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。知识点:int 转字符串方法:不是用 char* 而是 用 to_string() 就可以关于其他 int 转 string 和 string 转 int 的方法还有很多,请看:https://www.cnblogs.com/smile233/p/8379802.htmlhttps:/...

2019-03-21 20:14:16 222

原创 Paypal 笔试题:用 sort 函数对 string 进行局部排序

Description:有一个字符串,现在对其进行多次局部排序,例如str=“abcdef”,输入a=0, s=1,e=3,表示对abc这个子字符串进行降序排列:cbadef。若a=1,表示按照升序排列,a=0表示降序;s,e表示起始和终止字符的位置。输入例程:10 3naitdocexv1 1 30 9 101 7 910 代表字符串的长度,3表示进行3次操作,下一行是字符串,之...

2019-03-17 16:44:49 468

转载 python中remove的一些坑

  前几天,使用python时遇到这么一个需求,删除一个列表中值为1的元素。我寻思着使用remove方法,但是remove方法只会删除第一个,于是我使用for循环去删除。代码和运行结果如下:当时这个结果让我很懵逼,为什么1没有被删除完?查了资料发现,是for循环捣的鬼。因为for循环实际是循环的列表下标(索引),同时由于列表的可变性,每一次删除一个元素,列表的长度就会发生变化,元素的索引也会发...

2019-03-17 11:28:21 6014 3

原创 POJ-3094 Quicksum(cin和getline区别:输入含有空格)

本题不难,重点在于理解 cin 和 getline 的区别知识点:cin 读取时候遇到空格会认为是结束符。而 getline 可以读取一整行包括空格详情:https://blog.csdn.net/weixin_41042404/article/details/80934191getline 的头文件是 #include&lt; string &gt;代码:#include &lt...

2019-03-16 20:52:32 161

转载 INF=0x3f3f3f3f 是什么意思?

2019-03-16 18:36:34 1985

原创 POJ-1083 Moving Tables(imos算法)

这一题有两个陷阱:给出的起始点可能小于终点 ,所以必须要加个判断,让第二个数大于第一个数区间算的时候,一定是奇数到偶数,才能做到真正的区间全覆盖。所以如果第二个数是奇数,要加一变为偶数;第一个数为偶数,要减一变为奇数知识点:这道题主要用到了imos算法。很好用的算法,详见:http://www.hankcs.com/program/algorithm/imos_method.html...

2019-03-16 18:35:30 267

原创 POJ-2159 Ancient Cipher

其实这题也不算难,完全没必要用vector、map、pair来做这道题,但是我是想借此题练习一下相关用法。此题的核心是:统计一个字符串中各个字母出现的频率。比如A出现两次,就记为频率为2方法一我将用vector、map相关知识来解答方法二我将用普通数组的方法来解答(26个大写字母减去 ‘A’ 得到的数字可以对应数组下标)方法一:知识点:map默认按照键的大小由小到大来排序,如果要按照...

2019-03-16 12:42:17 181

转载 map如何实现排序

参考:https://www.jianshu.com/p/5b24ac2a6cac在c++中有两个关联容器,第一种是map,内部是按照key排序的,第二种是unordered_map,容器内部是无序的,使用hash组织内容的。1、对有序map中的key排序如果在有序的map中,key是int,或者string,它们天然就能比较大小,本身的就是有序的。不用额外的操作。为了实现快速查找,ma...

2019-03-14 22:18:16 6371

原创 用 matlab 对图片进行对比度和均衡度调整

现有一个名为 “boy.jpg” 的图片。下面我们对这个图片来进行对比度和均衡度的调整,并用直方图展示像素点。来看一下效果。代码如下:clear,clc,close all;f=imread('boy.jpg');g=rgb2gray(f); fa=imadjust(g); %按默认参数处理对比度fb=histeq(g); %按默认参数处理均衡度subpl...

2019-03-09 20:50:58 13018

原创 用 matlab 对图像进行局部提取(三)

问题描述:详见我的博文: https://blog.csdn.net/wuli_dear_wang/article/details/88370186方法三:代码如下:clear,clc,close all;a=imread('a.jpg'); %a是灰度图。(因为黑白图,其矩阵里元素的值都是0和255)b=imread('b.jpg'); %b是原图,也是三维的彩图...

2019-03-09 20:38:00 11950 4

原创 用 matlab 对图像进行局部提取(二)

问题描述:详见我的博文: https://blog.csdn.net/wuli_dear_wang/article/details/88370186方法二:代码如下:clear,clc,close all;a=imread('a.jpg');b=imread('b.jpg');a1=~a; %a图取反a2=a1.*255; ...

2019-03-09 20:34:55 8880 2

原创 用 matlab 对图像进行局部提取(一)

现在有两张蝴蝶图(如下图),对黑白蝴蝶图命名为 a.jpg , 彩色蝴蝶图命名为 b.jpg。目标是取出来b图中的彩色蝴蝶,其他部分不提取。代码如下:clear;clc;close all;a=imread('a.jpg'); %a是灰度图。(因为黑白图,其矩阵里元素的值都是0和255)b=imread('b.jpg'); %b是原图,也是三维的彩图figure,imsh...

2019-03-09 19:26:34 41692 38

原创 MATLAB的cat()函数

(一个常用的用法:由于灰度图是二维的,RGB图是三维的,在做图像处理的时候,如果需要升维,可以考虑用cat,三个灰度图(二维矩阵)可以用cat叠加为三维的RGB图)cat:用来联结数组用法:C = cat(dim, A, B) 按dim来联结A和B两个数组。C = cat(dim, A1, A2, A3, …) 按dim联结所有输入的数组。e.g.a=cat(3,...

2019-03-08 18:14:43 22246 4

转载 MATLAB中一个三维矩阵中如何提取出一个二维矩阵

函数功能:在MATLAB、FreeMat中,该函数按指定的向量来重新排列一个数组。语法格式:B = permute(A,order)按照向量order指定的顺序重排A的各维。B中元素和A中元素完全相同。但由于经过重新排列,在A、B访问同一个元素使用的下标就不一样了。order中的元素必须各不相同。对b=permute(a(:,1,:),[1 3 2]);进行解释:(:,1,:)表示取3列中...

2019-03-08 18:03:43 27887 1

原创 POJ-3299 Humidex

知识点:if … else if … else if … 最后结束可以没有else注意要避免在 while 中写入字符,容易出问题。如果想比如说读入字符 ‘A’ 就结束输入,可以写在 while(1)里面,加一句判断,字符等于 ‘A’ 时候,就 return 0; 一样可以结束输入ln(x) 这个函数用c++表示为log(x)。log(x) 就是自然对数。log10(x) 才是以为10底的...

2019-03-05 21:16:28 179

转载 G++与C++的区别

&nbsp;一、OJ提交题目中的语言选项里G++与C++的区别http://www.th7.cn/Program/cp/201405/199001.shtml首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已。那么他们之间的区别是什么?在提交题目中的语言选项里,G++和C++都代表...

2019-03-05 12:47:55 440

原创 POJ-1005 I Think I Need a Houseboat

知识点:ceil(x)返回不小于x的最小整数值(然后转换为double型)。floor(x)返回不大于x的最大整数值。(注:1.00的话ceil和floor返回都是1)round(x)返回x的四舍五入整数值。#include &lt;iostream&gt;#include &lt;sstream&gt;#include &lt;string&gt;#include &lt;cs...

2019-03-05 12:33:18 106

原创 POJ-1207 The 3n + 1 problem

一道水题,也是一道坑题。在这里记录下一个坑。本来很简单,但是没考虑到i和j的大小不确定,所以得先判断大小,然后进行遍历。其实题上给的输入例子,都是 i&amp;amp;amp;lt;j,但是仔细看题上说明并没有说i和j谁大谁小。所以这里还是需要进行判断的两个小技巧:判断奇偶数的简单方法:n &amp;amp;amp;amp; 1 结果为 1 说明是奇数;否则为偶数数遍历次数的话。要从0开始,别犯错误想当然从1开始。。#incl...

2019-03-05 10:41:07 232

转载 Arduino板上通过操作端口寄存器来进行控制

端口寄存器允许在Arduino板上更低级和更快地操纵微控制器的i / o引脚。Arduino板上使用的芯片(ATmega8和ATmega168)有三个端口:B(数字引脚8到13)C(模拟输入引脚)D(数字引脚0到7)每个端口由三个寄存器控制,这三个寄存器也是arduino语言中定义的变量。DDR寄存器确定引脚是INPUT还是OUTPUT。PORT寄存器控制引脚是高电平还是低电平,PIN寄存...

2019-02-27 20:45:43 11853 1

原创 matlab A=(:,1) 和 T =(:,:,1)是什么意思?

matlab中A(:,1)'表示将二维矩阵A的第一列转置为行向量。详细说明如下:A(x,y)表示二维矩阵第x行第y列位置的元素,x为:则表示所有的行。因此,A(:,1)就表示A的第1列的所有元素,这是一个列向量。矩阵A右上角加一短撇(’)即A’表示A的转置矩阵——交换A的行列位置(当A为复数矩阵,是共轭转置),因此A(:,1)'表示将矩阵A的第一列转置,最终就得到了一个行向量。下图是以上...

2019-02-15 16:08:18 96896 4

原创 matlab A.` 和 A` 的区别

A.'是一般转置,A’是共轭转置,顾名思义是对矩阵先做共轭运算,再进行转置,在A是实数矩阵时,两者没有区别,但是当A是复矩阵时,就有区别了示例如下:A=[1 2 3;4 5 6]A =1 2 34 5 6&gt;&gt;A.'ans =1 42 53 6&gt;&gt; A'ans =1 42 53 6&gt;&gt; a=[1+i 2+2i 3+3i;4+4i 5...

2019-02-15 15:45:42 18896

转载 内存管理算法:Buddy 算法

buddy system简介:buddy system内存管理,努力让内存分配与相邻内存合并能快速进行(对于普通算法来讲,合并内存相当困难),它利用的是计算机擅长处理2的幂运算。我们创建一系列空闲块列表,每一种都是2的倍数。举个例子,如果最小分配单元是8字节,整个内存空间有1M。我们创建8字节内存块链表,16字节内存块链表,32字节内存块链表,64,128,256,512,1k,2K, 4K...

2019-01-13 21:29:56 461

原创 !和~的区别(逻辑取反和按位取反)

在c语言中! 代表逻辑取反,即把所有非0的数值(相当于1)变为0,0变为1;~ 表示按位取反,即在数值的二进制表示方式上,将0变为1,将1变为0;针对逻辑运算与按位运算区别如下:针对这个问题,有一个经典的题目:int x=3; do { printf(" %d\n",x -=2);}while(!(–x));则上面的程序段,以下哪个选项正确( )A.输出的是1B.输出的是1和-...

2019-01-12 21:36:20 17648 4

转载 信号量、互斥量、读写锁、条件变量的区别

信号量强调的是线程(或进程)间的同步:“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在sem_wait的时候,就阻塞在那里)。当信号量为单值信号量是,也可以完成一个资源的互斥访问。有名信号量:可以用于不同进程间或多线程间的互斥与同步&nbsp;&nbsp;创建打开有名信号量&nbsp;&nbsp;sem_t *sem_open(c...

2019-01-11 11:57:21 412

原创 STM32启动流程

先阐述一个问题,嵌入式应用程序以C语言为主,因此main函数成为了程序运行起点。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?答案是“启动文件”,用英文单词来描述是“Bootloader”。下面进入正题:STM32又是如何启动的呢?STM32芯片自带的启动方式有3种,通过设置BOOT1、BOOT0的引脚的高低电平即可选择。主闪存启动是将程序下...

2019-01-10 17:55:27 2861

原创 PC机启动流程。PC如何从上电进入到操作系统?

固件的初始化,尝试启动CPU电源刚接通后,处理器处于实模式(real mode)并且禁止了内存分页机制,且只有1MB的可用存储地址空间。启动时寄存器的初始化,保存着CPU执行指令地址的地址寄存器(EIP)指向的是0xFFFFFFF0(4GB存储空间的最后16字节),这个地址被称为reset vector,是一条到BIOS程序入口的跳转指令。执行BIOS程序,进行通电自检(Power-...

2019-01-10 17:44:30 3318

原创 Linux进程管理、调度和系统调用

Linux 进程的系统调用:sys-fork:完整派生sys_clone:通过参数复制资源sys_vfork:复制 task_struct ,其他共享,阻塞父进程结构流程图如下:Linux进程管理和调度执行完进程的调用后,下面来看看进程的管理和调度一张图带你看懂 Linux 进程管理和调度的整个过程:(流程线上面的函数名就是内核里面相应执行过程的代码段)Linux 进程销毁...

2019-01-09 15:14:05 919

原创 error: failed to push some refs to 'https://github.com/xxxx.git' 解决办法

三种方法:推荐第二种比较安全1: 进行push前先将远程仓库pull到本地仓库$ git pull origin master $ git push -u origin master2: 强制push本地仓库到远程 (这种情况不会进行merge, 强制push后远程文件可能会丢失 不建议使用此方法)$ git push -u origin master -f3: 避开解决冲突,...

2019-01-04 15:38:15 551

原创 git 重命名文件的提交

git 如果重命名文件算删除一个旧文件添加一个新文件比如我在 git 仓库中, mv readme.txt readme.md在 git add 、commit 、push 时候,都要把 readme.txt 的这个删除动作记录进去了,git rm readme.txtgit commit git push如果只把 readme.md 的改变提交上去,到最后会发现 github 上...

2019-01-04 15:33:50 2739

原创 git 常用命令记录

有时候用的少了会忘记一些指令,下面做一些挺常用但自己忘记了的指令的记录删除commit记录如果不小心把不该提交的代码或者敏感的数据(如密码)提交到远程git服务器上,可以使用git reset回滚到上一个commit,并且commit history不留下任何痕迹1.通过找到想要退回到的 commit_id$ git log2.本地回到某一个指定的 commit_id$ git re...

2018-12-26 00:13:38 252

原创 Qt编译错误: [debug/main.o] Error 3 问题的解决办法

问题描述:今天在编译qt项目时候,遇到了一个问题,很奇怪的问题我去debug下面去找这个文件,是有的,但是还是报这个错,我尝试换个我之前编译都没问题的项目去试试怎么回事,看能否编译通过,结果还是报这个错:尝试了很多之前编译没问题的项目,结果都是报 [debug/***.o] Error 3 这种类型的错,尝试了各种解决方案,都不行。去百度,Google 搜了好久,大部分都是 -1: er...

2018-12-22 15:01:37 8766 5

原创 常用的 Linux命令

下面是我常用的一些指令,但是老是忘了,下面做个记录:(以后会继续补充)一、终端界面:ctrl + u 删除光标以前的字符ctrl + k 删除光标以后的字符ctrl + a 移动光标至的字符头ctrl + e 移动光标至的字符尾(其实如果要删除当前输入行的所有内容,不如直接 ctrl + c 简单 -_- ! )主机到虚拟机 ctrl + g虚拟机到主机 ctrl + alt...

2018-12-19 16:41:36 125

原创 Linux 编译内核模块用到的 make 指令参数

make -C (KDIR)M=(KDIR) M=(KDIR)M=(PWD) modules //执行的命令,该命令是make modules命令的扩展,-C选项的作用是指将当前的工作目录转移到指定的目录,即(KDIR)目录,程序到(pwd)当前目录查找模块源码,将其编译,生成.ko文件。...

2018-12-18 21:33:03 1248

原创 pkill杀死指定用户

killall是杀死所有进程,而pkill是按照进程名称杀死进程,可以达到杀死所有进程的目的,因为linux里面同名的进程是分主进程和子进程的。id:查看当前登录用户的的用户uid,用户gid等信息w:查看当前登录的用户信息列表,显示所有当前登录的用户who:跟w一样,查询的信息比w简单whoami:查询我是谁,也就是说我登录的时候是谁,而不是su 后我是谁,显示的只是用户名who am...

2018-12-17 22:14:10 1866

空空如也

空空如也

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

TA关注的人

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