自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JDK下载与安装教程(最简单版)

https://blog.csdn.net/shengmer/article/details/78836255

2020-04-17 09:55:58 406

原创 Leetcode——用栈判断有效括号总结

valid-parentheses题目链接:https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2?tpId=46&tqId=29158&tPage=7&rp=7&ru=%2Fta%2Fleetcode&qru=%2Fta%2Fleetcode%2Fquestion-ranki...

2020-03-05 16:02:11 190

原创 Leetcode——删除数组、链表的重复元素总结

1remove-duplicates-from-sorted-array题目链接:https://www.nowcoder.com/practice/a519784e89fb40199fbe7993786715b1?tpId=46&tqId=29153&tPage=7&rp=7&ru=/ta/leetcode&qru=/ta/leetcode/ques...

2020-02-28 15:47:49 194

原创 leetcode——最大间距

题目链接:https://leetcode-cn.com/problems/maximum-gap/要求:线性的时间和空间。运用桶排序的方法:步骤:1 先找出数组中的最大值和最小值;2 运用最大值和最小值,数组的大小计算桶中的区间大小,3 依据区间大小计算需要桶的个数;4 最大差值一定是后一桶的最小值减去前一个桶的最大值。class Solution {publ...

2020-02-26 15:28:17 231

原创 Leetcode ——二分法题目的总结

1Find Peak Element题目链接:https://leetcode-cn.com/problems/find-peak-element///两种方法:一:class Solution {public: int findPeakElement(vector<int>& nums) { int lo = 0; ...

2020-02-26 14:46:51 381

原创 Leetcode——字符串反转题目总结

151. Reverse Words in a String题目链接:https://leetcode-cn.com/problems/reverse-words-in-a-string/?utm_source=LCUS&utm_medium=ip_redirect_q_uns&utm_campaign=transfer2chinaclass Solution {pub...

2020-02-26 14:28:03 146

原创 Leetcode——LRU

https://leetcode-cn.com/problems/lru-cache/solution/lru-ce-lue-xiang-jie-he-shi-xian-by-labuladong/

2020-02-24 10:53:01 84

原创 数据结构—— new执行的过程

1.向内存中开辟空间;2.将this指向该空间地址;3.通过this给该空间添加属性和方法;4.把this返回给外部变量;

2019-10-07 16:52:48 278

原创 Leetcode—— 最长等差数列 dp

N个不同的正整数,找出由这些数组成的最长的等差数列。例如:1 3 5 6 8 9 10 12 13 14等差子数列包括(仅包括两项的不列举)1 3 51 5 9 133 6 9 123 8 135 9 136 8 10 12 14其中6 8 10 12 14最长,长度为5。因为没看清题目意思纠结了好久,题目说的是找出由这些数组成的最长的等差数列,而不需要这些数字的排...

2019-10-07 16:03:59 301

原创 算法排序----二分排序法

二分法排序的思想,在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,如果小,则对前半再进行折半,否则对后半进行折半,直到left>right,然后再把第i个元素前1位与目标位置之间的所有元素后移,再把第i个元素放在目标位置上。实际上我们看到,这是用一种方式来查找最合适的数值应该插入的位置。这个和快速排序有些相像之处但是也不完全相同。它实际上也是通过折半查找找到...

2019-08-28 17:18:29 393

原创 设计模式(5)——代理模式

代理模式在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系...

2019-08-28 10:19:38 74

原创 设计模式(4)——单例模式

单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一...

2019-08-27 22:11:51 104

原创 设计模式(3)简单工厂模式,工厂模式,抽象模式

简单工厂模式:一、简单工厂——适用场景工厂类负责创建的对象比较少客户端(应用层)只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心二、简单工厂——优缺点优点:只需要传入一个正确的参数,就可以获取你所需要的对象,而不需要知道其创建细节缺点:工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背了开闭原则。当产品非常多的时候,工厂类就过于复杂。#define CRT...

2019-08-27 16:44:11 111

原创 设计模式(2)

依赖倒转原则:传统的过程式设计模式倾向于使更高层次的模块依赖于低层次的模块,抽象层依赖于具体层次。层层依赖。一个类尽量不要同时实现太多的原则,即单一职责原则。依赖倒转模式原则的设计模式:具体的实现也依赖于抽象层。将中间层依赖于抽象层,更具有复用性。原始代码#define _CRT_SECURE_NO_WARNINGS #include <iostream...

2019-08-27 16:20:20 78

原创 设计模式(1)

开闭原则:概念:开闭原则:对扩展开放,对修改关闭,增加功能是通过增加代码实现的,而不是去修改源代码例如实现计算器的加减乘除:需要建立的是以个抽象类,把实现方法放在子类里面进行重写。避免在修改中,出现错误,查找错误不方便。原来代码:#define _CRT_SECURE_NO_WARNINGS #include <iostream>using namespa...

2019-08-27 15:33:39 103

原创 逆序对

链接:https://www.nowcoder.com/questionTerminal/bb06495cc0154e90bbb18911fd581df6来源:牛客网/*[1,2,3,4,5,6,7,0],87类似11.8,也可以用multiset(底层为红黑树)做,以0为例,end-cur即为0的逆序对数目*/class AntiOrder {public: int...

2019-08-21 09:30:21 161

原创 完全二叉树与满二叉树的区别(有图)

https://blog.csdn.net/u013812939/article/details/46798743

2019-08-19 22:18:30 484

原创 C结构体、C++结构体、C++类的区别

先来说说C和C++中结构体的不同a) C语言中的结构体不能为空,否则会报错1>d:\myproject\visual studio 2013\projects\myc++\main.c(71): error C2016: C 要求一个结构或联合至少有一个成员b) C语言中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的。换句话说就是C语言中的结...

2019-08-19 20:41:08 108

原创 大小端存储模式

一.什么是大小端模式?大端(存储)模式:一个数据的低字节内容存放在高地址中,高字节的内容存放在低地址中。(简单的说就是:低字节,高地址。高字节,低地址。----->大端) 小端(存储)模式:一个数据的低字节内容存放在低地址中,高字节的内容存放在高地址中。(简单的说就是:小小小----->低字节,低地址,小端)这两种模式,泥瓦匠记忆宫殿:“小端低低”。这样就知道小端的模式,反之大...

2019-08-19 19:36:33 2860

原创 SQL——limit

1.limit使用limit 参数,第一个参数:从哪儿开始查 ; 第二个参数:查几条-- 从3开始 取 3 条SELECT * from employee LIMIT 3,3;mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: mysq...

2019-08-18 17:02:31 806

转载 char* 和 char[]区别

相同点首先 这两种类型都可以对应一个字符串,比如:char * a=”string1”;char b[]=”string2”;printf(“a=%s, b=%s”, a, b);其中a是一个指向char变量的指针,b则是一个char数组(字符数组),其次 ,很多时候二者可以混用,像函数传参数的时候,实参可以是char*,形参可以是 char[],比如:void fun...

2019-08-17 20:39:08 6733

原创 const与#define区别

一:区别(1)就起作用的阶段而言: #define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。(2)就起作用的方式而言: #define只是简单的字符串替换,没有类型检查。而const有对应的数据类型,是要进行判断的,可以避免一些低级的错误。(3)就存储方式而言:#define只是进行展开,有多少地方使用,就替换多少次,它定义的宏常量在内存中有若干个备份;co...

2019-08-17 20:29:16 74

原创 Leetcode—— Group Anagrams

Given an array of strings, group anagrams together.Example:Input: ["eat", "tea", "tan", "ate", "nat", "bat"],Output:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]这一题目需要用到散列表:unordered_m...

2019-08-17 15:45:49 75

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

class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { vector<int>res; bool flag = binary_search(nums.begin(),nums.end(),target)...

2019-08-17 10:59:29 91

原创 STL——vector find使用

不同于map(map有find方法),vector本身是没有find这一方法,其find是依靠algorithm来实现的。#include <iostream>#include <algorithm>#include <vector>int main(){ using namespace std; vector<int...

2019-08-17 10:21:41 181

原创 螺旋队列算法(面试题目,解析很详细!)

螺旋队列的样子如下图:从紫线突破。从图中不难发现,每圈最大值max=(2*c+1)(2*c+1),c为由内往外的圈数,c>=0。如图每圈最大值分别是1、9、25、49、81........,算出每圈的max后,就分4条边分别计算每圈的其他值。通过坐标落在该圈4条边的哪条边上,按照不同的公式计算出具体坐标点的值。以第3圈(max=49)为例,4条边划分如下图(以颜色...

2019-08-16 18:04:52 255

原创 Leetcode——合并K个链表

比较好的两种思路1、与合并两个有序链表一样,K个链表一起从头往尾走,每次选取K个链表中指针指向位置的最小值,这个最小值使用优先队列维护较为合适。2、链表之间两两合并,可复用两个有序链表合并的代码。从第一个链表开始,依次合并后面的链表分治,第一个链表和第二个链表合并,第三个、第四个合并,如此下去基本的还是两个有序链表的合并。/** * Definition for singly...

2019-08-16 16:45:51 115

原创 数据结构——优先队列

C++ STL 优先队列优先队列特点:除了有与队列相同的先进先出的特点之外,优先队列还有自动排序的特点。#include<cstdio>#include<queue>using namespace std; int main(){ priority_queue<int>p; priority_queue<char>q; p....

2019-08-16 16:28:50 82

原创 STL算法学习-- for_each( )

for_each() 对某区间无素执行某种操作.void print(int &elem){ cout<<elem<<endl;}for_each(coll.begin(), coll.end(), print) ;回为元素以引用方式传递,可以改变区间内的元素,.for_each()还可以返回传递进去的函数对像的副本。...

2019-08-16 15:04:01 173

原创 STL—— transform用法

transform()对某区间无素执行某种操作.操作返回被改动后的元素 可以将操作的结果放到指定的区间void fun( int elem){  retun elem*elem;}transform(coll.begin(), coll.end(), coll.begin(), fun);transform() 另一个形式,将两个区间的元素放到一个二元操作...

2019-08-16 15:03:33 1143

原创 Leetcode——电话号码的字母组合

原题目:使用回溯 + 递归class Solution {public: vector<string> letterCombinations(string digits) { vector<string> res; int size = digits.size(); if(size == 0) retu...

2019-08-16 14:33:32 72

原创 STL----sort()使用什么排序方法

STL的sort函数在数据量大时采用快排,分段递归排序,一旦分段后的数据小于某个值,就改用插入排序。如果递归层次过深,还会改用堆排序。这样就结合了各类算法的所有优点。...

2019-08-16 11:13:27 624

原创 leetcode——盛水最多的容器

原题目:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。采用对撞指针的方法就可以轻松解决,由于整个容器不能倾斜,所以容器的容量取决于底边与两...

2019-08-16 11:08:02 106

原创 Leetcode——median-of-two-sorted-arrays(求中位数)

There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).解题思路:要求在O(log (m+n))时间内找到中位数,所以像那...

2019-08-16 09:32:30 75

原创 数据结构—— 字符串常量指针、数组

以下三条输出语句分别输出什么?int main (void) {char str1[] = “abc”;char str2[] = “abc”;const char str3[] = “abc”;const char str4[] = “abc”;const char* str5 = “abc”;const char* ...

2019-08-15 17:21:41 184

原创 剑指offer——跳台阶问题(递归、动态规则、变态跳台阶)

一 、题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析:青蛙每次只有一阶或者两阶两种跳法,那么:假设第一次跳的是一阶,那么剩下的n-1个台阶,跳法是f(n-1) 假设第一次跳的是两阶,那么剩下的n-2个台阶,跳法是f(n-2) 由上面两种假设可得:f(n) = f(n-1) + f(n-2) 由实际情况可知:f(1) = 1...

2019-08-15 16:23:14 72

原创 在二叉树中找到两个节点的最近公共祖先

解决问题的方法:后序遍历二叉树,假设遍历到的当前节点为curr。因为后续遍历的原因,先处理curr的两颗子树。假设左子树返回的节点为left,右子树返回的节点为right。1如果发现curr为null,或者curr为o1或者o2,则返回。2如果left和right都为空,说明整棵树上没有发现过o1或o2,返回null。3如果left和right都不为空,说明左子树上发现过o1或...

2019-08-15 16:06:51 246

转载 GET和POST区别

一、原理区别一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生什么动作。不会产生动作意味着GET...

2019-08-14 19:55:52 188

原创 数据库:视图和索引

目录一、视图1.什么是视图?2.为什么使用视图?3.如何使用视图?二、索引1.什么是索引?2.为什么使用索引?2.如何使用索引?(创建、删除)3.适用场景有哪些?4.注意事项有哪些?一、视图1.什么是视图?视图是一张虚拟表,并不在数据库中以存储数据值集的形式存在。在引用过程中依据基表动态生成。2.为什么使用视图?安全:有的数据是需要保密的,如果...

2019-08-10 15:16:13 105

原创 Leetcode——Largest Rectangle in Histogram (求最大矩形面积的一类题目总结)

1Largest Rectangle in Histogram原题目链接https://www.nowcoder.com/practice/e3f491c56b7747539b93e5704b6eca40?tpId=46&tqId=29094&tPage=4&rp=4&ru=/ta/leetcode&qru=/ta/leetcode/questio...

2019-08-07 10:02:38 235

空空如也

空空如也

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

TA关注的人

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