自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【刷题】329. 矩阵中的最长递增路径——给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。

题目:329. 矩阵中的最长递增路径给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。解答:将矩阵看成一个有向图,每个单元格对应图中的一个节点,如果相邻的两个单元格的值不相等,则在相邻的两个单元格之间存在一条从较小值指向较大值的有向边。问题转化成在有向图中寻找最长路径。深度优先搜索是非常直观的方法。从一个单元格开始进行深度优先搜索,即可找到从该单

2021-02-24 22:22:25 1059

原创 199. 二叉树的右视图——给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

题目:199. 二叉树的右视图给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。解答:方法一:深度优先搜索思路:我们对树进行深度优先搜索,在搜索过程中,我们总是先访问右子树。那么对于每一层来说,我们在这层见到的第一个结点一定是最右边的结点。算法:这样一来,我们可以存储在每个深度访问的第一个结点,一旦我们知道了树的层数,就可以得到最终的结果数组。// 深度优先搜索 depth-first searchtypedef struct TreeNode T

2021-02-24 15:06:05 2252

原创 78. 子集——给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

题目:78. 子集给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。解答:int** subsets(int* nums, int numsSize, int* returnSize, int** returnColumnSizes){ // 开辟存放幂集的数组 int** ans = (int**)malloc(sizeof(int*) * (1 << numsSize))

2021-02-23 22:35:05 2327

原创 34. 在排序数组中查找元素的第一个和最后一个位置——给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。

题目:34. 在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。解答:方法一:直观的思路肯定是从前往后遍历一遍。用两个变量记录第一次和最后一次遇见的下标,但这个方法的时间复杂度为 O(n)O(n),没有利用到数组升序排列的条件。int* searchRange(int* nums, int numsSize, int target

2021-02-22 15:12:13 1219

原创 8. 字符串转换整数 (atoi)——请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。

题目:8. 字符串转换整数 (atoi)请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。解答:int myAtoi(char* s){ long ret = 0; // 记录正负数 int flag = 1; // 判断空格 while (*s == ' ') { s++; } // 判断是否为正数 if (*s == '+') { s++; flag

2021-02-22 14:21:19 1382

原创 414. 第三大的数——给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。

题目:414. 第三大的数给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。解答:方法一:int thirdMax(int* nums, int numsSize){ // min记录最小值 int min=nums[0]; // max记录最大值 int max=nums[0]; // middle记录第二大 int middle; // third记录第三大 int third; int i

2021-02-21 20:54:23 1927

原创 66. 加一——给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

题目:66. 加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。解答:int* plusOne(int* digits, int digitsSize, int* returnSize){ int i=digitsSize-1; for(i;i>=0;i--) { // 如果当前位为1-8,直接+1即可返回

2021-02-21 16:35:27 1373

原创 9. 回文数——给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

题目:9. 回文数给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。解答bool isPalindrome(int x){ if(x<0) return false; // x是几位数,则temp就为几位数 int temp=1; while(x/temp>=10) { t

2021-02-21 00:28:16 6487 2

原创 手动实现string类及各种接口,包括实现迭代器

实现string类及各种接口#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>#include <string>using namespace std;class String{public: // 无参构造函数 String() // 15 表示初始化的有效数据的个数 // 15+1 表示还需存放一个'\0' :_str(new char[16]) , _size(0) , _capac

2021-02-16 19:59:40 172

原创 415. 字符串相加——给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

题目:415. 字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。解答class Solution{public: string addStrings(string num1, string num2) { int begin1=num1.size()-1; int begin2=num2.size()-1; // 记录进位 int step=0; // 记录 和

2021-02-15 18:40:55 1604

原创 类模板以及实例化

C++入门:类模板以及实例化类模板的定义格式template<class T1, class T2, ..., class Tn>class 类模板名{ // 类内成员定义};类模板的实例化类模板实例化与函数模板实例化不同,类模板实例化需要在类模板名字后跟<>,然后将实例化的类型放在<>中即可。类模板名字不是真正的类,而实例化的结果才是真正的类。// Vector类名,Vector<int>才是类型Vector<int> s

2021-02-14 13:36:41 897

原创 【编程】C++入门:operator new与operator delete函数、 new和delete的实现原理

operator new与operator delete函数new和delete是用户进行动态内存申请和释放的操作符operator new和operator delete是系统提供的全局函数new在底层调用operator new全局函数来申请空间delete在底层调用operator delete全局函数来释放空间operator new和operator delete不是运算符重载函数/*operator new:该函数实际通过malloc来申请空间*/void *__CRTDE

2021-02-13 22:22:45 458

原创 C/C++内存管理——new/delete操作自定义类型

C/C++内存管理C/C++内存分布C语言中动态内存管理方式malloc/calloc/realloc的区别相同点不同点C++中动态内存管理方式——new/deletenew/delete操作内置类型new/delete操作自定义类型C/C++内存分布栈又叫堆栈,非静态局部变量/函数参数/返回值等等,栈是向下增长的。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。堆用于程序运行时动态内存分配,堆是可以上增长的。数据段–存储全局数据

2021-02-13 21:01:35 991

原创 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

题目求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。解答:利用内部类的性质:内部类就是外部类的友元类。class Solution{public: // 内部类 class Sum { public: // 构造函数 Sum() { // 内部类直接访问外部类的私有成员 _sum

2021-02-13 18:15:58 177

原创 友元函数、友元类——友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以友元不宜多用。

C++入门:友元友元提出背景友元函数友元函数特性1-5友元类友元类特性1-2友元友元分为:友元函数和友元类友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以友元不宜多用。提出背景问题:现在我们尝试去重载operator<<,然后发现我们没办法将operator<<重载成成员函数。因为cout的输出流对象和隐含的this指针在抢占第一个参数的位置。this指针默认是第一个参数也就是左操作数了。但是实际使用中cout需要是第一个形参对象,才能正

2021-02-13 15:59:00 415

原创 【编程】C++入门:static成员——用static修饰的成员函数,称之为静态成员函数。

C++入门:static成员用static修饰的成员函数,称之为静态成员函数。静态的成员变量一定要在类外进行初始化。【静态的成员变量不能在声明、初始化列表中进行初始化。】class Date{public: // 静态成员函数 static int getdcount() { return _dcount; }private: int _year; int _month; int _day; static int _dcount;};// 静态的成员变量一定要在类

2021-02-13 14:26:45 2525 2

原创 142. 环形链表 II——给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 NULL。

题目:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。解答:步骤:找到环内的相遇点一个指针从起始节点开始,一个指针从相遇点开始两个指针的相遇位置即为入口节点struct ListNode * hasCycle(struct ListNode *he

2021-02-09 21:21:39 219

原创 【并行计算框架】——MapReduce——反向传播神经网络模型的MapReduce(MBNN)

MapReduce是一种计算模型,该模型可将大型数据处理任务分解成很多单个的、可以在服务器集群中并行执行的任务。这些任务的计算结果可以合并在一起来计算最终的结果。一句话概括:全量数据分散的存储在多个计算机上,多个Map节点分别统计一部分数据的值,Reduce节点汇总Map节点的计算结果。反向传播神经网络模型的MapReduce——MBNN大数据规模导致很难同时保持效率和准确性类似的数据会增加系统负载数据集中的噪声也是影响处理结果的重要因素根据我们的观察,数据具有以下自然属性:大规模、相.

2021-02-06 10:39:38 805

原创 this指针的特性、this指针存在哪里、this指针可以为空吗

this指针的特性:this指针的类型:类类型* const只能在“成员函数”的内部使用this指针本质上是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参。所以对象中不存储this指针。面试题this指针存在哪里?        其实编译器在生成程序时加入了获取对象首地址的相关代码。并把获取的首地址存放在了寄存器ECX中(VC++编译器是放在ECX中,其它编译器有可能不同)。也

2021-02-04 15:37:34 686 1

空空如也

空空如也

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

TA关注的人

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