自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CongliYin的博客

达则兼济天下,穷则独善其身。

  • 博客(33)
  • 收藏
  • 关注

原创 atoi:char类型转换成int类型

  C++中有函数atoi()可以实现char类型与int类型的转换,我们也可以使用char类型减去’0’的方法得到int型数值的某一位,然后根据其所在位置(个、十、百….)求得数据的int型表示。  如有需要,请访问我的Github获取包含测试程序的C++源码。  1、使用atoi()函数实现class Solution{public: int myAtoi(char...

2017-08-31 21:25:53 8614

原创 itoa:int型整数转换成字符串

   C/C++中有函数itoa()来实现int型与字符串的转换,我们也可以使用整数加‘0’的方法,整数加‘0’会隐式地转换成char类型。如有需要,请访问我的Github获取包含测试程序的C++源码。   1、使用itoa()函数的实现如下:class Solution{public: void my_itoa(int x) { char str[...

2017-08-31 20:49:49 1126

原创 Leetcode#70: Climbing Stairs

题目描述:爬n阶的楼梯,可以每次爬一阶或者两阶,求不同的方式数量思路:这个题目是一个计算n层阶梯情况下,走到顶端的路径种数(要求每次只能上1层或者2层阶梯)。这是一个动态规划的题目: n = 1 时 ways = 1; n = 2 时 ways = 2; n = 3 时 ways = 3; … n = k 时 ways = ways[k-1] + ways[k-2];如有需

2017-08-31 11:09:18 162

原创 Leetcode#69: Sqrt(x)

题目描述:求平方根思路:利用牛顿迭代法求解即可class Solution{public: int mySqrt(int x) { long long y = x; while(y * y > x) { y = (y + x / y) / 2; } return y;

2017-08-31 10:36:19 205

原创 Leetcode#67: Add Binary

题目描述:两个二进制数相加,求和class Solution{public: string addBinary(string a,string b) { string answer = ""; int la = a.length(); int lb = b.length(); if(la == 0)

2017-08-30 22:06:06 180

原创 使用两个栈实现队列的入队、出队

这是数据结构中对栈的一个应用实例,在各大公司的面试中也是常考题,使用栈实现队列的入队、出队操作很简单,只需要两个栈,一个栈负责入栈=入队,另一个栈负责出栈=出队即可。  思路:使用STL中的stack创建两个栈,s1和s2,s1负责入栈,s2负责出栈;队列入队:使用STL中的stack会动态分配内存,因此不必担心栈满的情况,所以入队时,直接将元素入s1栈即可。队列出队:出队时需要s2出栈,因此

2017-08-30 11:49:38 6112 1

原创 Leetcode#66: Plus One

题目描述:大数相加问题,将大数的每一位存储在数组中,使大数加一; 思 路:大数加1,应该是从最后一位起,加1或者进位;当前数字为9时,将当前数字置为0;当前数字不为9时,直接加1返回即可;若整个数组全为9,则将数组的第一个位置元素置为1,并且数组最后再加一个元素0;如有需要,请访问我的Github获取包含测试程序的C++源码。class Solution{public:

2017-08-30 10:09:10 187

原创 Leetcode#58: Length of Last Word

题目描述:求字符串最后一个词的长度,如果不存在,返回0思 路:简单的字符串匹配问题遍历字符串,如果当前字符不为空而当前字符的前一个字符为空,则将长度置为1,然后长度++,直到下次遇到空格如有需要,请访问我的Github获取包含测试程序的C++源码。class Solution{public: int lengthOfLastWord(string s) {

2017-08-29 11:48:22 195

原创 Leetcode#53: Maximum Subarray

题目描述:求一个数组中子数组和的最大值,需要注意的是,子数组一定要是连续的思 路1:传统解法中,这是一道典型的动态规划题目,利用最优子结构求解当数组元素为0个时,返回最大值为0当数组元素大于0个时,遍历数组,当前最优解为:max(上一个最优解 + 当前数组元素,当前数组元素)全局最优解为:max(上一个全局最优解,当前最优解)思 路2:分治法将数组分成左右两部分,...

2017-08-29 11:23:00 208

原创 启动程序时提示缺少mfc.dll

强迫症总是喜欢胡乱卸载电脑里的程序,并不知道看似没用的程序却包含另外一些软件的库文件,所以当启动另外一些软件时,就会发现计算机缺少一些库。  今天缺少的是mfc.dll库文件,怎么解决的呢?网上有说直接下载这个库文件的,但是博主觉得即使下载了这个库文件,可能还会提示其他库文件的缺失,于是直接下载了VC++2012的redistributable,下载地址在这里,下载时选择适合自己电脑的版本,双击安装

2017-08-29 09:44:51 1466

原创 Leetcode#20: Valid Parentheses

题目描述:判断一个字符串是否有效,该字符串是括号“()[]{}”组成的,若前后括号是匹配的则有效,反之无效思路:这是一道使用栈解决的题目,如果是左括号,就压入栈中;如果是右括号,就要判定其与栈顶元素是否匹配,若匹配则栈顶元素出栈;直到最后,若栈中的左括号全部出栈,栈为空则有效;反之栈非空,则无效以下是C++实现,如有需要,请访问我的Github获取包含测试程序的完整源码。class Solu

2017-08-28 10:04:49 166

原创 C++多态

C++作为面向对象的语言,有三大特性:封装、继承和多态。多态的基础是继承,没有继承就没有多态。那么,什么是多态呢?多态是指相同的对象收到不同的消息时产生不同的动作;或者不同的对象收到相同的消息时产生不同的动作。一、静态多态(早绑定)  在函数重载时,程序早在编译阶段就已经确定要使用哪个函数,这种情况称为早绑定。二、动态多态(晚绑定)  前面已经说明多态的基础是继承,那么在接下来的介绍中,这些内容都是

2017-08-27 21:33:37 162

原创 C++继承

C++中面向对象的思想非常重要,也非常实用。类的继承特性是C++的一个非常重要的机制,它可以是使得在创建一个新类时,子类可以继承父类的数据成员和成员函数,仅需添加子类本身特有的成员。   关于C++继承有很多概念和问题容易混淆,在此总结一下,仅供参考。一、继承方式注意:在继承时,若不说明继承方式,则默认为private继承。1、公有继承   其实公有继承不必多说,父类的public成员会继承到子

2017-08-27 17:45:04 178

原创 Leetcode#21: Merge Two Sorted Lists

题目描述:将已排好序的两个链表连接到一起,返回连接的链表。以下是C++实现,如有需要,请访问我的Github获取包含测试程序的完整源码。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x)

2017-08-27 10:23:18 211

原创 Leetcode#35: Search Insert Position

题目描述:给定一个已排序的数组和一个target值,若数组中有元素的值与target相等,则返回其位序;若找不到,则返回要插入位置的位序。假设数组中无重复元素。以下是测试用例:[1,3,5,6], 5 → 2 [1,3,5,6], 2 → 1 [1,3,5,6], 7 → 4 [1,3,5,6], 0 → 0思路:这道题的标准解法是采用二分查找法,当然暴力求解也可以,不过复杂度更高,但是思路会

2017-08-26 09:54:17 179

原创 Leetcode#27: Remove Element

题目描述:将数组中值为val的元素删除,返回删除后的数组长度。注意:不能使用额外的空间。思路:首先判空,若数组为空,返回0;若数组非空,则将不等于val的数组元素依次赋值给数组的元素,等于val的值就被过滤掉了;使用answer记录赋值的次数,最后answer即为新数组长度若有需要,请访问我的Github获取完整C++源码。class Solution {public: int r

2017-08-25 17:37:42 146

原创 单链表的C++实现

以下是数据结构中环形队列各函数的C++实现,如有需要,请访问我的Github获取完整源码。 //Node类的定义class Node{public: int data; Node *next; //指向下一个元素 void printNode(); //没有构造函数,使用默认构造函数};//Node类成员函数的实现#include"N

2017-08-25 16:47:31 441

原创 线性表的C++实现

线性表的分类:  以下是数据结构中顺序表的C++实现,如有需要,请访问我的Github获取完整源码。   //线性表类的定义class List{public: List(int size); //创建线性表 ~List();

2017-08-24 22:24:09 2165 1

原创 Leetcode#26: Remove Duplicates from Sorted Array

题目描述:原地移除有序数组中的重复元素,返回移除后的数组长度要求:不能利用额外的空间开销思路:先判断数组是否为空,为空返回0;两个指针, i 指向原数组的元素, inedx 指向不重复数组的元素;如果两个指针指向的数字相等,则i++;如果两个指针指向的数字不相等,则index++,并用原数组的第i个值覆盖第index个值;index是从0开始的,要输出个数,返回 index + 1若有需

2017-08-24 10:59:28 143

原创 栈的C++实现

以下是数据结构中环形队列各函数的C++实现,如有需要,请访问我的Github获取完整源码。//栈类的定义(Stack.h)class Stack { public: Stack(int size); //构造函数,分配内存,初始化栈空间,设置栈容量(size不变),栈顶 ~Stack();

2017-08-23 19:33:13 459

原创 队列的C++实现

以下是数据结构中环形队列各函数的C++实现,如有需要,请访问我的Github获取完整源码。//类的定义class Quence{public: //构造函数:初始化队列,假设队列元素都为简单的整型数据 //C++实现 //C语言实现 Quence(int QuenceCapacity); //InitQuence(&Q)

2017-08-23 12:36:19 1770

原创 Leetcode#13: Roman to Integer

题目描述:罗马数字转换成阿拉伯整数思路:对于罗马数字与阿拉伯数字之间的关系,如下图所示:罗马数字计数规则:相同的数字连写,所表示的数等于这些数字之和,例如:III = 3;小的数字在大的数字右边,所表示的数等于这些数字之和,相等情况也划为此类,例如:VI = 6;小的数字在大的数字左边,所表示的数=(右边的数-左边的数*2)+左边的数,例如:IV = 4;若有需要,请访问我的Github获取

2017-08-22 17:02:53 161

原创 Leetcode#9: Palindrome Number

题目描述:判断一个数是否为回文数,是返回true,不是返回false注意:负数的处理以下是C++实现://解题思路:循环取数字的第一位和最后一位作比较,若相等则取第二位和倒数第二位作比较,直到完成比较或者遇到不相等情况程序结束class Solution{public: bool isPalindrome(int x) { if (x < 0)

2017-08-21 19:41:42 171

原创 Leetcode#7: ReverseInteger

题目描述:将整数反转。 比如:Example1: x = 123, return 321Example2: x = -123, return -321注意:由于整数反转后可能会造成溢出,溢出返回0以下是C++实现:class Solution{public: int reverse(int x) { //反转后为answer int an

2017-08-21 19:34:38 185

原创 matlab 中 camlight 的使用

camlight的目的:创建或者移动在camera coordinates里的光源,主要有一下几种用法:camlight(‘headlight’) %在camera的位置创建一个光源 camlight(‘right’) %在右上方,下面类似 camlight(‘left’) camlight camlight(az,el) camlight(…,’style’) camlight(lig

2017-08-18 17:43:11 9611

原创 Leetcode#1: twoSum

初试Leetcode,发现问题的解只有一个class,可能是为了专注于算法的效率吧,系统会自动补全main()函数以及输入输出,对于编程大牛来说,这样的平台是非常好的,有了算法的思路直接写,然后运行即可。但是对于菜鸟的我来说,实现算法就是个难题,却还有一个难题,自己写的代码不经过编译,不知道对错更改!!!于是乎,只能在IDE下,自己补写main()函数,然后编译通过后,再在平台上运行。   拿第一

2017-08-18 15:55:03 383

原创 Matlab将.mat文件保存为.txt文件

由于一开始没写mat2txt()的函数,手动转换发现工作量巨大,于是网上搜索了关于保存的方法,大家的方法各有不同,整理一下现总结如下:1、使用save命令保存  命令如下:// filename.txt 为要保存的文件名,data 为工作区中的变量save filename.txt data -ascii   先说这种方法的优点,就是简单!简单!当然,既然简单肯定有局限性,就是这种方法保存出来

2017-08-18 14:36:08 41977 12

原创 C 和 C++的对比

我们都知道,C++语言是C语言的扩展,C++语言中添加了更多好用的特性,下面对两者进行简单的对比。1、数据类型  在C语言中数据类型主要分为基本类型、构造类型、指针类型、空类型。基本类型:整型 int、字符型 char、实型(单精度 float、双精度double)构造类型:数组类型、结构类型 struct、联合类型 union、枚举类型 enum指针类型空类型:void  而在C++中

2017-08-17 15:09:51 576

原创 Excel自动填充

最近处理数据用到了excel2010,需要填充一列数据(等差等比……),其实后来才发现matlab实现更简单,花了十几分钟在网上搜答案,所以写一下笔记,以免下次忘记又要搜。   首先在需要填充的位置输入第一个数据,然后在菜单栏找到“填充”,如下图所示:  选择“系列”,弹出如下对话框:  选择自己要填充的行列,以及填充的步长、终止值,点击确定即可完成。

2017-08-14 21:00:33 926

原创 Matlab新建struct结构体数组

struct在matlab中是用来建立结构体数组的。通常有两种用法:s = struct('field1',{},'field2',{},...) 这是建立一个空的结构体,field1,field2是域名称;s = struct('field1',values1,'field2',values2,...) 这是在建立结构体的时候就赋值,values1,values2就是针对field1,field2

2017-08-13 21:05:06 17795

原创 Matlab添加toolbox

由于科研需要,为matlab添加一个toolbox—manopt,先来简单介绍一下这个工具包,它专门用于简化最先进的黎曼优化算法,通过内部处理大部分微分几何,解决非线性优化问题。它是一个用于优化三维形状的工具包,三维流形优化是非线性优化的一个快速发展的分支。 其重点是利用搜索空间的平滑几何形状来设计有效的数值算法, 优化后的流形非常适合于处理秩和正交性约束。 这种结构化约束在机器学习应用中普遍存在,

2017-08-10 17:19:54 9121 5

原创 归并排序算法

  归并排序是一种较为常用的排序算法,其时间复杂度最坏情况和平均情况均为nlgn,与快速排序相同,它也是一种基于分治思想的排序算法。  它的基本思路是把数组分成A、B两个组,如果这两组的数据是有序的,那么就可以对这两组数据进行合并,继而完成排序。  那么,最关键的问题就变成了如何使得A、B两组数据有序呢?归并排序的思想就是把A、B两组数据分别再分成两组,依次类推,直到小组数据只有一个的时候...

2017-08-02 10:25:00 348

原创 快速排序算法

  面试中较为常见的算法之一就是快速排序,快速排序在实际排序应用中也是最好的选择,因为它的平均性能非常好,它的期望复杂度为nlgn,另外,它还是一种稳定的排序方法。快速排序利用分治思想,将待排序数组分成左右两个部分,然后对其分别递归调用快速排序算法。  下面通过一个例子介绍快速排序算法的思想,假设要对数组a[10]={6,1,2,7,9,3,4,5,10,8}进行排序,首先要在数组中选择一个数...

2017-08-01 22:06:00 14054 11

空空如也

空空如也

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

TA关注的人

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