自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 欢迎使用n编辑器

#include <iostream>#include <string>using namespace std;string simplifyPath(string path){ string res = "/"; for(int i=1;i!=path.size();++i) { if(path[i]=='/' &&...

2019-11-03 15:45:18 242

原创 LeetCode_Valid Parentheses

题目描述:有效括号算法思想:运用栈的思想,若括号匹配则将栈中对应元素pop出来,否则将该元素入栈int opposite(vector<int>& num,int n){ for(int i=num.size()-1;i>=0;--i){ if(num[i]==-n) return i; } return -1;}bool is...

2019-07-20 08:49:50 123

原创 数据结构与算法分析第四章

第四章讲的是树这种结构,这种结构的大部分操作的运行时间平均为logN,其中重点是二叉搜索树(代码实现)。本章的主要内容:了解树是如何实现文件系统的树如何来计算表达式的值如何利用树支持一O(logN)平均时间进行的各种搜索操作,以及如何细化到最坏情况下时间界O(logN)的。简单介绍一下树这种数据结构,树这种结构可以联想到家谱,一层一层的向下传递,树的一些属性:一棵树的最上层的一个节...

2019-07-16 19:06:59 389

原创 二叉搜索树

代码:Tree.h#pragma once#ifndef TREE_H#define TREE_H#include <iostream>#include <memory>using namespace std;struct TreeNode { //节点声明 TreeNode(int x) :data(x) {} TreeNode* left = n...

2019-07-16 16:05:24 108

原创 第二章 寄存器组

通用寄存器:AX 累加器,算术运算主要寄存器BX 基址寄存器CX 计数器DX 数据寄存器SP 堆栈指针寄存器,指示段顶的偏移地址BP 基址指针寄存器,堆栈区中的一个基地址SI 源变址寄存器DI 目的变址寄存器BP和SS联用来确定堆栈中某一地址,SI,DI和DS联用来确定数据段某一单元的地址专用寄存器:IP 指令指针寄存器FLAGS 标志位寄存器(OF,CF,SF,ZF...

2019-07-01 09:00:31 555

原创 LeetCode_3Sum

description:给定一个保存整形数据的vector,编写程序检查是否有三个数的和等于0的,返回一个vector保存不重复的答案解法1:暴力迭代vector<vector<int>> threeSum(vector<int> &nums){ vector<vector<int>> res; for (i...

2019-06-17 11:13:41 114

原创 LeetCode_Integer to Roman

description:将整形数据转化成罗马字符,只表示1-3999解法:用二维数组囊括所有罗马字符,然后用整形数据的每一位去找对应的罗马字符string intToRoman(int num){ string res; string vec[4][10] = { {"", "I", "II", "III", "IV", "V", "VI", "VII", "V...

2019-06-17 08:42:01 122

原创 LeetCode_Container With Most Water

描述:给出一组整形数据,绘制成柱状图后将某两个数据看作是容器的边界,计算出最大的容量input:[1,8,6,2,5,4,8,3,7]output:49方法1:暴力算法int maxArea(vector<int>& height) { int res = 0; for (int i = 0; i < height.size() -...

2019-06-15 09:45:24 107

原创 LeetCode_Longest Common Prefix

写一段程序来返回在一个包含string的vector容器中的最长的前缀字符串,如果没有则返回""input:[“flower”,“flow”,“flight”]output:flinput:[“dog”,“racecar”,“car”]output:""string longestCommonPrefix(vector<string>& strs) { if (st...

2019-06-14 09:39:22 112

原创 LeetCode_Roman to Integer

如题:罗马数字到整形数据的转换input:IIIoutput:3input:IVoutput:4input:IXoutput:9input:LVIIIoutput:58input:MCMXCIVoutput:1994int romanToInt(string s) { int num = 0; vector<int> vec; for (int i = 0;...

2019-06-11 20:25:26 126

原创 数据结构与算法分析第三章

第三章 表、栈和队列本章介绍了三种最基本、最简单的数据结构,如标题。本章重点:介绍抽象数据类型(ADT)的概念阐述如何对表进行有效的操作介绍ADT及其在实现递归方面的应用介绍队列ADT及其在操作系统和算法设计中的应用抽象数据类型(abstract data type,ADT)是实现存储数据的存储结构及其实现基本操作的算法1.表ADT连续线性存储数据的简单结构,实现方法:数...

2019-06-11 15:15:47 624

原创 游标实现链表

List_cursor.h#ifndef LIST_CURSOR_H#define LIST_CURSOR_Hconstexpr auto MAX_SPACE = 10;;#include <iostream>using namespace std;struct Node { int data; int next;};class List {public: Li...

2019-06-11 10:23:32 311

原创 智能指针+模板实现链表

/*List.h*/#ifndef LIST_H#define LIST_H#include <iostream>#include <memory>using namespace std;template<typename T> struct Node {public: T data; shared_ptr<Node<T>&g...

2019-06-10 11:14:05 541

原创 LeetCode_Palindrome Number

Description:检查输入的数据是否是回文数,如果是返回true,否则返回falseinput:121output:trueinput:-121output:falseinput:10output:falseps:试着不要将int转换为stringbool isPalindrome(int x) { if (x < 0) return false; else {...

2019-06-03 10:08:59 86

原创 运行时类型识别(RTTI)

运行时类型识别的功能由两个运算符实现dynamic_cast,用于将基类的指针或引用安全地转化为派生类的指针或引用typeid,用于返回表达式的类型当我们将这两个运算符用于某种类型的指针或引用,并且该类型含有虚函数时,运算符将使用指针或引用绑定的动态类型特别适用于:当我们想通过基类的指针或引用来调用派生类的操作,并且该操作不是虚函数时Note:使用RTTI的比定义虚函数蕴含着更多风险...

2019-06-02 15:30:16 153

原创 数据结构与算法分析第二章

第二章 算法分析对于一个问题,一旦确定了某种算法是正确的,那么下一步就要分析该算法的可行性(花费多少时间、占用多少空间等),所以在这一章讨论下列问题:如何估计一个程序运行所需要的时间如何将一个程序的运行时间从天或年降到秒粗心使用递归的后果幂运算和求两个数的最大公因数非常有效的算法如何估计一个程序运行所需要的时间我们采用一般法则:for循环嵌套for循环顺序语句if/el...

2019-06-02 15:15:14 345

原创 C++类型强制转换

一个命名的强制类型转换具有如下形式cast-name<type>(expression)type是转换的目标类型,expression是要转换的值,cast-name是如下的一种static_castdynamic_castconst_castreinterpret_caststatic_cast任何具有明确意义的转换,只要不包含底层const,都可以使用static...

2019-06-02 10:51:05 125

原创 数据结构与算法分析第一章

第一章引论:写出一个可以工作的程序远远不够,还要考虑在巨大的输入集上运行一些数学知识复习证明数据结构分析中最常见的两大方法:归纳法和反证法递归简论(基准情况,不断推进,设计法则,合成效益法则)练习1.1:书中给出了两种选择问题的解法,第一种很容易,这里给出第二种int select(vector<int>& vec, int k) { if (k > v...

2019-06-01 16:56:33 282

原创 LeetCode_String to Integer (atoi)

题目描述:将string型数据转换成int型数据int myatoi(string str) { int sign = 1, base = 0, i = 0; while (str[i] == ' ') { i++; } if (str[i] == '-' || str[i] == '+') { sign = 1 - 2 * (str[i++] == '-'); } while (...

2019-05-31 15:02:43 103

原创 C++基础

基本内置类型大多数计算机可寻址的最小内存块为字节(byte),1个byte等于8个bit,也就是8位二进制数,而计算机的位数决定了一个字的大小,32位系统中1个字为4个字节,64位系统中1个字就为8个字节一个int至少和short一样大,一个long至少和int一样大,一个long long至少和long一样大选择变量类型的经验准则:当明确知晓数值不可能为负时,选无符号类型使用int执...

2019-05-29 19:05:07 71

原创 LeetCode_Reverse Integer

题目描述:给定一个int数据,将该数据反序input:123output:321input:-120output:-21注意:假设环境是32位的,我们处理int型数据的范围是[-231,231-1],如果超出这个范围则返回0这个题的溢出判断是个坑,无论用什么方法都需要注意溢出判断,int占4个字节,32位,若结果超出32位则应该返回0,但是在程序中是只保存该数的32位,例如153423...

2019-05-28 15:22:27 80

原创 C++控制内存分配

1

2019-05-27 17:03:57 144

原创 LeetCode_ZigZag Conversion

题目描述:The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)(之字形转换)input:s = "PAY...

2019-05-25 09:59:01 106

原创 第十七章 标准库特殊设施

tuple类型tuple类型类似pair类型,不过pair类型只保存两个成员,蛋tuple类型没有此限制 ,tuple类型及其伴随类型和函数都定义在tuple头文件中定义:tuple<int,string,double> t; //使用默认构造函数初始化tuple<int,string,double> s(42,“hello”,1.5) ...

2019-05-21 15:41:12 114

原创 第十六章 模板与泛型编程

函数模板定义:template<typename/class T> int compare(const T& a,const T& b) {}以关键字template开始,后跟一个模板参数列表(不能为空),模板参数列表表示在类或函数定义中用到的类型或值,实例化函数模板:编译器通常通过函数实参来推断欧版实参,并将它绑定到模板参数T上模板类型参数:我们一般将模板类形...

2019-05-13 18:50:07 124

原创 背包问题(动态规划)

代码:#include <iostream>using namespace std;const int Max_weight = 10; //最大重量int v[] = { 0,1,3,5,9 }; //保存第i个物品的价值int w[] = { 0,2,3,4,7 }; //保存第i个物品的重量int dp[Max_weight+1][Max_weight ...

2019-04-26 19:55:05 167

原创 文本查询程序(cpp primer 5th 第十五章练习)

题目描述:给定一段文本,按功能查找输入的内容input:wordoutput:word在文本中出现的次数,行号和所在行的内容input:~wordoutput:word出现的次数,没有word的行号和行内容input:word1 | Word2output:返回匹配两个条件的任意一个行input:word1 & word2output:返回两个条件都匹配的行input:w...

2019-04-25 22:46:34 202

原创 投资问题(动态规划)

题目:有m个项目,n元钱,f(x,y)表示第x个项目投资y元钱的效益,问如何投资使效益最大。目标函数:max{f(1,y1)+f(2,y2)+…+f(m,yn)};约束条件:y1+y2+…+yn=n;分析:我们维护一个二维数组dp,dp[i][j]表示前i个项目投资j元钱的最大效益,使用动态规划时,考虑如何将问题划分成子问题,我们可以先从第一个项目考虑,然后考虑前两个项目,然后前三个项目,...

2019-04-24 11:17:50 4610

原创 指令系统和寻址方式

指令:操作码 操作数…操作数有效地址:操作数的偏移地址位移量(地址)基址(基址寄存器中的内容)AX,BX,CX,DX变址(变址寄存器中的内容)SI,DI与数据有关的寻址方式:立即寻址方式:操作数直接存放在指令中Mov AX,3064H寄存器寻址方式:操作数在寄存器中Mov AX,BX1,2的操作数地址都在代码段直接寻址方式:Mov AX,[2000H] ...

2019-04-24 10:52:41 656

原创 LeetCode_Longest Substring Without Reapting Characters

题目描述:给定一个字符串,找出最长的无重复的子串,返回它的长度eginput:abcabcbboutput:3Solution:Sliding Window(滑动窗口)思想:从下标0开始,设置一个length长度的窗口,迭代向右拓展,如果右边字符没有出现在窗口中,那么length++,如果出现,那么记录窗口长度,将窗口左端设置为窗口中重复元素的下一位,依次迭代代码: int...

2019-04-23 07:39:07 107

原创 LeetCode_Longest Palindromic Substring

题目描述:给定一个字符串,找出字符串中最长的回文串。eg:input:abbcoutput:bbinput:babadoutput:bab or aba我的代码(暴力法)string longestPalindrome(string s) { map<int,string> vec; if(s.size()==...

2019-04-22 22:27:00 79

转载 汇编语言学习(存储器)

存储器

2019-04-19 10:46:48 618

原创 LeetCode_ AddTwo Numbers

题目描述:给定两个非空的链表,链表存储非负整数,但是数据在链表中是倒叙存储,将两个链表中的数据相加到一个链表中example:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8检查:342 + 465 = 807我的代码:/** * Definition for singly-linked list....

2019-04-18 19:39:19 86

转载 HashTable

转载https://www.cnblogs.com/feichengwulai/articles/3682302.html如何理解?哈希表(散列表)是通过关键值进行数据访问,哈希表会从每个数据中提取关键值,将关键值通过哈希函数映射成索引(例如数组下标),建立被存内容到索引的映射关系。(可以借助关联容器map理解)哈希表有什么优势?在哈希表中查找数据的理想时间复杂度是O(1),可以借助有序数...

2019-04-16 22:05:26 92

转载 寻找数列中缺失的数(Find_lost)

编程珠玑第二章问题A:给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数,在具有足够内存的情况下如何解决问题,如果只有几百字节的内存呢。分析:32位整数一共有2^32 = 4 294 967 296个数据,超出给定的40亿个,所以有缺失的。内存足够的情况下,采用第一章的位图排序算法,8位一个字节,2^32/8=512MB;如果内存只有几百字节,并且有若干外...

2019-04-16 21:46:52 1369

原创 LeetCode_Two Sum

题目描述:给出一个目标数值target,求出数组中是否有两个元素的和等于target,如果有将下标输出出来我的第一想法是暴力运算:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> vec;...

2019-04-16 20:10:13 86

原创 C/CPP文件编译过程

2019-04-15 19:57:17 811

转载 第十四章 重载运算与类型转换(知识点+习题答案)

当运算符作用于类类型对象时,可以通过运算符重载定义新的含义。重载运算符时具有特殊名字的函数:它的名字由关键字operator和后面要重载的操作符组成运算符表:赋值(=),下标([]),调用(()),成员访问箭头(->)必须是成员函数复合赋值运算符一般来说是成员函数,但并非必须改变对象状态或与给定类型密切相关的应该是成员函数,如递增、递减和解引用具有对称性的运算符可能转换为任意...

2019-04-13 11:08:38 197

原创 矩阵链

矩阵链满足优化原则,所以属于动态规划问题。输入:向量p{p0,p1…pn}输出:Ai到Aj计算最小次数m[i][j]和最后一次运算位置s[i][j]两矩阵相乘所做的乘法次数:pqr递归实现#include <iostream>using namespace std;#define MAX 2147483647#define N 10int m[][N];int s[...

2019-04-11 19:51:57 900

原创 位图排序(Bitmap)

<<编程珠玑>>第一章中需要编写一个排序程序,排序的对象是电话号码,每条电话记录都是7为整数,一共一千万条,号码都不重复。该程序只有1MB的内存可用,而且排序时间最多几分钟,十秒钟为理想情况。在32位操作系统下,如果用32位整数在表示每个号码,那么1MB可以存储250000个号码,可以进行40趟来完成。这是一种方法,只是进行40趟所需时间较长,而问题的核心是是否能找到...

2019-04-10 22:04:14 433

空空如也

空空如也

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

TA关注的人

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