自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LLVM Pass中的指令写到文件中

最近在做LLVM有关的项目,需要将LLVM Pass中的部分结果写到文件中。网上找了半天,都没有教程,看了很多源码,只有很多用errs()和out()函数打印信息到屏幕的,也试过用 tee 命令将ubuntu命令行输出写到文件,可是出现了乱码。最后在高人指点下,经过自己半天的摸索终于解决了。key word: raw_fd_ostream, StringRef, error_code1. 头文件准备需要的头文件为:#include "llvm/Support/raw_ostream.h"#inc

2022-04-22 15:33:14 457

原创 gem5跑SPEC CPU 2017 int测试集 完整指令

最近的项目需要在gem5上跑SPEC 2017的int测试集,无奈网上没有完整的命令参考,因此花了很大的功夫去搜罗和尝试,最后终于明白了这个玩意儿在gem5上该怎么跑,具体的就是–cmd和–option该怎么写。主要参考了两篇文档:SPEC 2017 int rate command lines[gem5/spec2017/spec17_benchmarks_ref.py]其实,主要看后一个就行了。例如,针对int 500.perlbench_r的:#500.perlbench_r perlb

2021-10-21 11:58:15 1912 2

原创 LeetCode 17. 电话号码的字母组合

17. 电话号码的字母组合这道题目一看题目要求所有的可能的情况,我首先就想到了回溯算法。但是在回溯过程中遇到了一些问题。一、回溯法  回溯算法的三部曲当时做的时候忘了,现在回忆如下:确定参数、确定终止条件,确定单层逻辑。1. 参数在这里很容易想到的是,需要一个全局变量来存最后的结果,定义为vector<string> res;然后是看递归进行到哪里了,所以需要一个索引——int index;最后需要输入我们要处理的字符串 string digits。  因此可以写出回溯算法的头部:

2021-03-08 09:22:23 81

原创 LeetCode 5. 最长回文子串

5. 最长回文子串这道题目是要找到一个字符串中的最长回文子串。主要有两种方法:1. 中心扩展;2. 动态规划。两种方法都没想到最开始,后来看了解析,自己理解了会了。一、中心扩散法  中心扩散法,比较好理解,就是根据回文字符串的定义:是中心对称的。因此,我们先定义一个中心的字符。这里要注意,一个回文字符串的长度可能是奇数,也可能是偶数,因此要加以区分。如果是奇数,那么最中间必定是一个字符,如果是偶数那么中间是空。  为了找到最长的回文串,对于每个字符,我们考虑两个情况:如果这个字符是中心的(奇数),如

2020-12-30 19:54:06 72

原创 解决修改头文件后,Makefile重新编译(make)失效的问题

事情是这样的,我在一个c++项目中需要用到一个头文件和若干对象。举例如下:func1.h#include <iostream>void func_1();func1.cpp#include "func1.h"using namespace std;void func_1(){ cout << "in the fuction 1." << endl;}test.h#include <iostream>usin

2020-12-16 16:36:37 3535 6

原创 backtrack-回溯搜索算法总结

backtrack——回溯算法总结这几天着重在刷LeetCode有关回溯搜索算法的题,之前也写了一些博客,感觉当时清楚,但是原理上还是有点模糊。之前根据别人的模板,依葫芦画瓢,解决了一些问题,但是有的时候条件变了,就有点理不清楚了,特别是哪里该加一些限制条件,很懵逼。所以总结了一下。1. 到底什么是回溯?回溯算法,都知道是基于递归的算法。那为什么要用递归呢,可以用传统的写法代替嘛?之所以用递归,就是因为如果用传统的方式,很难写或者根本写不出来。举个例子,比如我们想知道用集合nums = [1, 2,

2020-12-14 18:41:18 606

原创 LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置

34. 在排序数组中查找元素的第一个和最后一个位置这一题理解起来还是比较简单的,就是找到某个数字在数组中的最开始和最后的位置。关键思路:两次 二分法。1. 初步想法我自己在做的时候,就想得很简单。首先题目要log(n)的时间复杂度,那么很容易想到二分法。所以我的思路是,先用二分法找到target的位置,然后分别向前和向后查找,就可以找到第一和最后的位置。class Solution {public: vector<int> searchRange(vector<int&

2020-12-09 11:45:48 63

原创 LeetCode 47. 全排列 II

47. 全排列 II这一题跟46题——全排列,非常类似。但是不同的是,这一题给的集合中有重复的元素。所以关键是要怎么处理这些重复的元素,在保证一个结果中可以出现重复数字的情况下,最后的结果集中又不能有一样的解。举个例子,比如:nums = [1, 1’, 3], target = 5; 那么正确的结果为:[ [1,1’,3], [1,3,1’] [3,1,1’]]可以看到,一个正确的解中可以包含重复的数字(1和1’),但结果中没有重复的解,比如[1, 1’, 3]和[1’, 1, 3]。

2020-12-08 11:03:59 69

原创 LeetCode 40. 组合总和 II

40. 组合总和 II这一题跟39题非常类似,但是不同的是,这一题给的集合中有重复的元素。所以关键是要怎么处理这些重复的元素,在保证一个结果中可以出现重复数字的情况下,最后的结果集中又不能有一样的解。举个例子,比如:nums = [1, 2, 2, 2, 5], target = 5; 那么正确的结果为:[ [1,2,2], [5]]可以看到,一个正确的解中可以包含重复的数字(2),但结果中没有重复的解,比如[1, 2, 2]和[2, 1, 2]以及[2, 2, 1]。1. 如何避免重复?

2020-12-07 20:43:42 52

原创 LeetCode 39. 组合总和

39. 组合总和  做了46题之后,大概明白了回溯搜索是怎么回事,紧接着我就回过头来做了这道题(怎么感觉有点回溯那味儿了?哈哈哈可能这就是缘分吧),结果一把过!我分析了一下,这道题的基本框架跟46-全排列差不多,都要搜索所有的情况,但是有一些不一样的地方:  1. 终止的条件不一样:46题中要把给定数组中的数字都用一遍,所以终止条件是一个答案(path)中的元素个数等于给定数组的元素个数(length);而在这里,我们要找到一组目标元素,使得加起来等于目标值,所以最后的终止条件应该跟目标值target有

2020-12-02 19:33:28 66

原创 LeetCode 46. 全排列

46. 全排列  我是从第39题——组合总和,然后看解析找到了这一题,重头学习了 “回溯搜索” 算法。最开始推导出了树形结构,也知道要递归,但不知道该怎么递归,后面才了解到要用这个回溯算法,感觉第一次接触???或者是忘了,所以从头学了下。总的思路: 基于递归的回溯搜索1. 回溯搜索  做到第39题,了解到了这个词,感觉很陌生,属实不应该。故,从头学习了一下这个算法。总的来说,这个算法就是枚举所有可能的组合,然后找到满足要求的结果的集合。一开始我想到了动态规划。两者的区别是,动态规划要求得到一个最

2020-12-02 16:01:10 68

原创 LeetCode 33. 搜索旋转排序数组

33. 搜索旋转排序数组这一题也比较简单,刚开始拿到的时候,觉得有点棘手,不敢下手,后来看了下解析,明白了思路后,就自己写了,然后一遍过了。总的思路: 二分查找+分类讨论1. 传统的二分法传统的二分法十分简单,首先找到中间的,比较是否等于目标值,如果等于则返回,如果不等,则相应调整上边界或者下边界。一个简单的代码如下,但是要注意一些细节。int BinarySearch(int nums[], int target){ int low = 0, high = sizeof(nums) - 1,

2020-12-01 15:08:24 56

原创 Ubuntu 16.04下编译Caffe-CPU版最可靠完整的版本!!!!(踩了所有的坑,试了几乎所有方法)

Ubuntu 16.04下编译Caffe-CPU版最可靠完整的版本!!!!(踩了所有的坑,试了几乎所有方法)Introduction我踩的坑***各种软件包的版本GCC版本的确定与调整一、相关依赖包的安装二、caffe的下载三、protobuf等包的手动编译**1. protobuf的安装****2. glog、gflag、lmdb的安装****3. opencv的安装****4. leveldb...

2019-07-26 14:48:30 721

原创 ubuntu 16.04 安装zsim 过程及遇到的诸多坑!!!

ubuntu 16.04 安装zsim 过程及遇到的诸多坑!!!IntroductionZsim下载依赖软件的安装gcc、g++libconfig插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出...

2019-07-26 14:24:55 1042 3

空空如也

空空如也

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

TA关注的人

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