编程知识
sdsfdsfdsds
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
猿辅导三面
1.蛇形矩阵查找第一行递增,第二行递减,第三行递增…且每行元素都比上一行元素大pair<int, int> search(vector<vector<int> > nums, int tar){ int m = nums.size(); if (m == 0) return { -1,-1 }; int n = nums[0].size(); if (n == 0) return { -1,-1 }; int left = 0; int right = m原创 2020-09-10 19:56:14 · 428 阅读 · 0 评论 -
单链表排序
1.归并排序递归版本ListNode* sortList(ListNode* head) { return mergesort(head); } ListNode* mergesort(ListNode* head) { if(head==NULL||head->next==NULL) return head;//这个地方要先判断head 再判断head->next ListNode* fast=head;原创 2020-09-10 17:34:20 · 145 阅读 · 0 评论 -
leetcode刷题规律
回溯法1.求数组排列组合题目特征: 要求一个组合的vector<vector < T > > 合集。此时需要用回溯法求出所有的可能的集合。题目列表:39.组合数组电话号码的字母组合组合总和 II组合组合总和 III因子的组合组合总和 Ⅳ技巧:(1)有些题目需要先对数组进行一个排序,然后再元素的选择过程中,要注意是否可以重复选择。(2)如果对结果的集合要求每种结果里的元素不能重复,则需要设置一个begin位置,代表元素其实搜索的位置,每次从begin开始搜索;原创 2020-09-09 11:36:13 · 199 阅读 · 0 评论 -
top K
基于快排的top kclass Solution{public: void qsort(vector<int>& v, int start, int end, vector<int>& ret, int k) { int picked = rand() % (end - start + 1) + start; swap(v[picked], v[start]); int pivot = v[start]; int index = star原创 2020-09-07 11:14:43 · 195 阅读 · 0 评论 -
字符串和int互转
int转字符串//实现to_string函数#include<iostream>#include<string>using namespace std;#define max 100string to_String(int n){ int m = n; char s[max]; char ss[max]; int i=0,j=0; if (n < 0)// 处理负数 { m = 0 - m;原创 2020-09-06 22:27:54 · 185 阅读 · 0 评论 -
手写shared_ptr、vector、string
手写vector#include<iostream>using namespace std;template<typename T>class myvec{private: T* data; int capacity; int size;public: myvec()//构造函数 { data = NULL; capacity = size = 0; } myvec(int len) { data = new T[len]; capa原创 2020-09-06 18:36:48 · 283 阅读 · 0 评论 -
链表问题
单链表反转ListNode* reversenode(ListNode* p){ if (p == NULL || p->next == NULL) return p; ListNode* cur = p; ListNode* pre = NULL; ListNode* next = p->next; while (next) { cur->next = pre; pre = cur; cur = next; next = cur->next;原创 2020-09-03 21:29:10 · 116 阅读 · 0 评论 -
第k大的元素
堆排序,创建一个大小为k的小顶堆int findKthLargest(vector<int>& nums, int k) { vector<int> mat(k); for(int i=0;i<k;i++) mat[i]=nums[i]; //从下往上调整堆 for(int i=k/2-1;i>=0;i--) adjust(mat,i,k);原创 2020-09-03 14:47:31 · 108 阅读 · 0 评论 -
二叉树遍历(非递归
前序遍历vector<int> preorderTraversal(TreeNode* root) { vector<int> res; stack<TreeNode*> stack1; if(root==NULL) return res; stack1.push(root); while(!stack1.empty()) { TreeNode* t原创 2020-09-02 15:13:44 · 106 阅读 · 0 评论 -
二叉树
完全二叉树 bool isCBT(TreeNode* root) { if(root == NULL) return true; queue<TreeNode*> q; q.push(root); int flag = 0;//标志当前层是否满节点 while(!q.empty()) { TreeNode *curNode = q.front(); q.pop();原创 2020-09-02 11:00:56 · 127 阅读 · 0 评论 -
int main(int argc, char*argv[])
个人理解 就是 :argc是命令行总的参数个数, 默认为1;argv[]是argc个参数,其中第0个参数是程序的全名也就是xxxx.exe,以后的参数是用户输入的参数。引用两个解释1在调用一个可执行程序时,某些情况下需要向程序传递参数。如我们可以在控制台中键入notepad.exe,回车后将执行记事本程序。如果我们希望在打开notepad时同时打开一个文本文件,可以在notepad.ex...原创 2020-03-18 23:47:39 · 860 阅读 · 0 评论 -
Ascii码的一些知识
1.范围是0~127 共128个2.第一个是空字符 字符串表示为: ‘\0’(NULL: 指的是 宏常量(#define NULL 0)或(void *)0(空指针),多用于后者,来指示一个指针为空)3.字符0 的码是48 0~9对于ASCII码 48-594.A~Z对应 65-905.a~z对应 97-122...原创 2020-03-13 19:05:41 · 342 阅读 · 0 评论 -
排序方法 C++
冒泡排序法思路:迭代的方式1.比较相邻两个元素的大小,较大者交换到后面2.从头到尾执行1中操作,最后一个元素就是最大的一个3.对除了最后一个元素的其他元素,循环执行上述操作当只剩下最后一个元素时,停止比较空间复杂度:O(1)时间复杂度:最好一次拍好O(1)最差全部要排O(n^2)平均O(n^2)稳定性:稳定(稳定性指原来a在b的前面,a=b,使用排序算法后a还在b的前面)代码...原创 2020-02-23 11:41:12 · 188 阅读 · 0 评论
分享