- 博客(29)
- 资源 (10)
- 收藏
- 关注
原创 插入法排序
一、学习要点:1.直接插入的核心思想:将给定数组看成是有序表和无序表组成;开始时有序表只有1个元素,无序表包含n-1个元素,排序过程是每次从无序数组中抽取一个元素,把它插到有序数组中的适当位置,最后形成新的有序表;2.首先找到应该插入的位置,插入位置之后的所有元素向后移位,移位之前要插入数据及时保存;3.为防止移位后的数据覆盖问题,要移位的所有元素从最后移位开始;二、代码:#includ...
2019-06-30 20:18:00 1860
原创 动态数组的定义和声明(c++)
动态数组的定义和声明:https://blog.csdn.net/singebogo/article/details/70477737
2019-06-29 10:31:20 3029
原创 Find First and Last Position of Element in Sorted Array
一、求target在有序数组nums中出现的最小下标和最大下标组成的数组。否则返回{-1,1}。二、代码class Solution{public: int[] searchRange(int[] nums,int target){ int len=nums.length; int[] result=new int[]{-1,-1}; int low=0,high=len-1;...
2019-06-28 19:47:10 249
原创 First Missing Positive
一、学习要点:这篇博客讲的比较好:https://www.cnblogs.com/fstang/p/3754549.html不断填坑挖坑,填坑是用应有的值,挖去不匹配的值;二、代码:class Solution{ int firstMissingPositive(int A[],int n) { for(i=0;i<n;i++) { if(A[i]==i+1) ...
2019-06-28 19:00:37 134
原创 颜色排序(Sort Colors)
一、学习要点:1.定义red指针指向开头位置,blue指针指向末尾位置;2.从头开始遍历原数组,如果遇到0,则交换该值和red指针指向的值,并将red指针后移一位。若遇到2,则交换该值和blue指针指向的值,并将blue指针前移一位。若遇到1,则继续遍历;二、代码:class Solution{public: void sortColors(vector<int>&...
2019-06-28 16:18:32 2448
原创 链表反转2(Reverse Linked List II)
一、学习要点:0.流程简述:1->2->3->4->5->null1-> 3->2->4->5->null1-> 4->3->2->5->null由此我们可以看出来,总共需要n-m步即可,第一步是将节点3放到节点1的后面,第二步将节点四放到节点1的后面。很有规律的操作,刚开始,pre指向结点1,c...
2019-06-28 15:24:26 772
原创 判断一颗二叉树是否为二叉搜索树(Validate Binary Search Tree)
一、学习要点:利用二叉搜索树的中序遍历为递增数组的性质;二、代码:void middle(node* root,vector<int>& inorder){ if(root==NULL) { return; } middle(root->left,inorder); inorder.push_back(root->value); middle...
2019-06-28 10:55:24 277
原创 链表中是否存在环的问题,及环入口在链表中位置(Linked List Cycle II)
一、学习要点:1.快慢指针法,存在链表环的话,两指针肯定会相遇;2.入口位置由两快慢指针相遇时,改变慢指针指向表头,和慢指针等速前进,再次相遇的地点决定;3.讲的比较好的一个博客:https://blog.csdn.net/willduan1/article/details/50938210二、代码:struct ListNode{ int val; ListNode* next;...
2019-06-28 10:09:38 168
原创 反转链表(ReverseList)
一、学习要点:1.改变指针的指向即可,两个结点之间的关系;二、代码:struct ListNode{ int val; struct ListNode *next; ListNode(int x):(val(x),next(NULL)){};}class Solution{public: ListNode* ReverseList(ListNode* pHead){ L...
2019-06-27 22:03:11 1645 1
原创 链表中位数(Middle of the Linked List)
一、学习要点1.链表知识的回顾;2.链表结点数组;二、代码class Solution {public ListNode middleNode(ListNode head) {ListNode[] array = new ListNode[100];int count = 0;while (head != null) {array[count++] = head;head = ...
2019-06-27 21:00:21 1855
原创 图像倒转90度(Rotate Image)
一、学习要点0.在原图像矩阵上进行操作;1.旋转90度,等于将图像对折,然后左右对调;2.vector矩阵的声明和赋值;二、代码学习:#include<iostream>#include<stdlib.h>#include<vector>#include<algorithm>class Solution{public: voi...
2019-06-27 20:22:40 2802
原创 用哈希桶实现错位字组的分类(Group Anagrams)
一、学习要点:1.map和unordered_map的区别;2.哈希桶的使用;二、代码:class Solution{public: vector<vector<string>> groupAnagrams(vector<string>& strs) { vector<vector<string>> res;...
2019-06-27 10:50:33 193
转载 C语言中atoi()函数的用法
C语言中atoi()函数的用法一、学习要点:1.int atoi(const char *str)把参数str所指向的字符串转换为一个整数;二、代码#include<stdio.h>#include<stdlib.h>#include<string>int main(){ int val; char str[20]; strcp(str,"...
2019-06-22 21:02:23 11204
原创 KMP的c语言实现和学习
一、学习要点:1.KMP算法思路了解:https://www.bilibili.com/video/av3246487?from=search&seid=110095447506325807402.KMP完整代码实现视频:https://www.bilibili.com/video/av16828557/?spm_id_from=333.788.videocard.23.完整代码实...
2019-06-19 21:47:26 276
原创 罗马数字转阿拉伯数字
一、学习要点:1.运用递归的思想,找出罗马字符串中最大的元素,对左边的处理是减去,对右边的处理是加上;递归头是字符串只剩下一个元素时,或者右边的下标小于左边的下标;二、代码:#include<stdlib.h>#include<stdio.h>int single_r2i(char ch){ char s1[7] = { 'I','V','X','L','C'...
2019-06-19 10:18:57 998
原创 定间隔字符翻转(Reverse String II)
一、学习要点:1.主要是对剩余字符长度的考虑,大于k的时候,对前k个进行翻转;小于k的时候,对实际个数进行全翻转;本程序中翻转个数用变量x来表示;二、代码:#include<stdlib.h>#include<stdio.h>#include<string>using namespace std;class Solution{public: s...
2019-06-18 21:29:16 175
原创 Reverse Vowels of a String (反转字符串中的母音)
leetcode Reverse Vowels of a String 反转字符串中的母音一、学习要点:1.find_first_of:查找与字符串str中某个字符相同的位置,并返回他的第一个出现的位置,如果没有返回string::npos;即最后一个字符的后面一个位置;2.find_last_of:从后往前匹配;二、代码:#include<stdlib.h>#includ...
2019-06-18 20:20:53 225
原创 First Unique Character in a String(字符串中的第一个唯一字符)
一、用散列表的思想可快速解决;二、代码:#include<stdlib.h>#include<stdio.h>#include<string>#include<vector>using namespace std;char findUni(string s) { vector<int> abc(26,0); for (s...
2019-06-18 19:26:08 273
原创 Reverse String
一、学习要点1.利用string的迭代器进行遍历;2.利用reverse函数进行翻转;二、代码#include<stdlib.h>#include<stdio.h>#include<string>using namespace std;int main(){ string s = "hello world"; rever...
2019-06-18 17:18:09 211
原创 同构字符串(Isomorphic Strings)
一、学习要点:1.构造两个哈希表;2.由于为字符串,每个哈希表的长度为256;3.字符串的字符比较则为哈希值的比较;如果出现之前构造过哈希值的字符,则取出哈希值比较即可,同一映射的哈希值相同;不为同一映射,哈希值则不相同;二、代码实现:#include<stdlib.h>#include<stdio.h>#include<string>using...
2019-06-18 16:50:25 500
原创 有序数组求和问题(Two Sum II - Input array is sorted)
有序数组求和问题一、学习要点:1.c++中参数引用的应用,有一种c语言中传值的感觉;声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。2.vector res(2,0)表示vector是一个二维向量,每个元素被初始化为0;用vector的时候注意包含库include;二、代码实现:#i...
2019-06-18 15:39:20 410 1
原创 有序数组去重问题
一、有序数组去重问题1.注意此时的数组是有序的;2.unique函数属于STL中比较常用的函数,它的功能是元素去重,即“删除”序列中所有相邻元素的重复元素。此处的删除,并不是真正的删除,而是指重复元素的位置被不重复的元素给占领了。由于是它删除的是相邻的重复元素,所以在使用前,一般都会对目标序列进行排序;3.unique函数返回的是对于数组而言为,去重后最后一个元素的指针,而其他容器则是返回去...
2019-06-18 11:14:32 972
原创 回文数
回文数1.一个数字倒序和正序是一样的;2.可利用将一个数字倒序算法,得到一个数字的倒序和原数字比较;3.这里是利用c++11定义好的函数调用,使用的是stringstream;#include<sstream>#include<stdlib.h>#include<stdio.h>using namespce std;class Solution...
2019-06-17 20:56:48 218
原创 给定一个32位有符号整数,将整数中的数字进行翻转
给定一个32位有符号整数,将整数中的数字进行翻转解题思路就是不断的求模,然后取余,然后注意溢出问题;代码:#include<stdlib.h>#include<stdio.h>class Solution{ int reverse(int x) { int res; while(x!=0) { res=res*10+x%10; x/=...
2019-06-17 20:15:17 2054
原创 哈希表的C语言实现
一、学习要点:1.哈希表是一个很神奇的东西,即解决了数组的增删的繁琐,也解决了链表的查找问题;2.哈希表的哈希函数;3.哈希表的冲突问题解决;什么叫做闭散列,什么叫做开散列;闭,严重遵守哈希内涵。开,有点开放的意味,解决冲突靠链表,有点变味的哈希;二、相关数据结构解读:...
2019-06-16 22:47:28 8459 3
转载 C++const类型的引用参数
C++const类型的引用参数:具体作用,假设实参的参数类型与引用参数不匹配,但可以转换为引用类型,程序将创建一个正常类型的临时变量,使用转化后的实参值来初始化它,然后传递一个指向该临时变量的引用。讲的比较好的一个博客:https://www.cnblogs.com/a-lai/p/7338316.html...
2019-06-12 20:57:36 1755
原创 多继承中构造器和析构器的调用顺序
多继承中构造器和析构器的调用顺序:构造器的调用顺序就像盖房子,从最基层开始;析构器的调用顺序就像拆房子,从最顶层开始;
2019-06-11 16:22:51 165
原创 python中复制、浅层拷贝、深层拷贝的区别
python中复制、浅层拷贝、深层拷贝的区别一、学习要点:1.python中的复制与拷贝的区别2.python中浅层拷贝与深层拷贝的区别二、代码:import copya=[1,2,3,4,['a','b']]b=ac=copy.copy(a)d=copy.deepcopy(a)a.append(5)print(a)print(b)print(c)print(d)a...
2019-06-11 16:19:59 1030 1
转载 g20曲线拟合源码解读
g20曲线拟合源码解读讲的比较好的是(亲测好使):https://blog.csdn.net/ly1997th/article/details/80033427
2019-06-11 10:14:36 261
E:\micsoftedge load\Compressed\rfs_tracking_toolbox_new.7z
2019-12-18
快速排序法
2018-12-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人