首页
学习
活动
专区
工具
TVP
发布

calmound

专栏作者
235
文章
170025
阅读量
42
订阅数
多线程-互斥变量
第一个 CreateMutex 函数功能:创建互斥量(注意与事件Event的创建函数对比) 函数原型: HANDLE  CreateMutex(   LPSECURITY_ATTRIBUTESlpMutexAttributes,   BOOLbInitialOwner,        LPCTSTRlpName ); 函数说明: 第一个参数表示安全控制,一般直接传入NULL。 第二个参数用来确定互斥量的初始拥有者。如果传入TRUE表示互斥量对象内部会记录创建它的线程的线程ID号并将递归计数设置为1,由于该线
用户1624346
2018-04-18
7990
设计模式--单例模式Singleton
单例模式顾名思义整个程序下只有一个实例,例如一个国家只有一个皇帝,一个军队只有一个将军。 单例模式的书写又分为饿汉模式和懒汉模式 饿汉模式    类中代码 package demo; public class Singleton { //私有化构造函数 private Singleton() { } //由于外部无法实例对象,顾在类中实例,定义为static将对象直接由类调用 private static Singleton instance = new Single
用户1624346
2018-04-18
5310
日期计算
#include<stdio.h> #include<iostream> using namespace std; //日期函数 int days[12]={31,28,31,30,31,30,31,31,30,31,30,31}; struct date{ int year,month,day; }; //判闰年 inline int leap(int year){ return (year%4==0&&year%100!=0)||year%400==0; } //判合法性 inline int
用户1624346
2018-04-18
1.4K0
希尔排序
#include<stdio.h> void ShellSort(int array[],int length) { int i,j,h,temp; for(h=length/2;h>0;h=h/2) { for(i=h;i<length;i++) { temp=array[i]; for(j=i-h;j>=0;j-=h) { if(temp<ar
用户1624346
2018-04-17
5500
知识点提纲
操作系统: 1. 进程的有哪几种状态,状态转换图,及导致转换的事件。 2. 进程与线程的区别。 3. 进程通信的几种方式。 4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解) 5. 线程的实现方式. (也就是用户线程与内核线程的区别) 6. 用户态和核心态的区别。 7. 用户栈和内核栈的区别。 8. 内存池、进程池、线程池。(c++程序员必须掌握) 9. 死锁的概念,导致死锁的原因. 10. 导致死锁的四个必要条件。 11. 处理死锁的四个方式。 12. 预防死锁的方法、避免死锁的方法。
用户1624346
2018-04-17
7810
中缀表达式变为后缀表达式
中缀表达式“9+(3-1)*3+10/2”转化为后缀表达式“9 3 1-3*+ 10 2/+” 中缀表达式转后缀表达式的方法: 1.遇到操作数:直接输出(添加到后缀表达式中) 2.栈为空时,遇到运算符,直接入栈 3.遇到左括号:将其入栈 4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。 5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈 6.最终将栈中的元素依次出栈,输出。 实现9+(3-1)*3+10/2,栈=空 1.
用户1624346
2018-04-17
1.1K0
KMP
#include<stdio.h> #include<iostream> #include<string.h> using namespace std; void GetNext(char *str,int next[]) { int j,k; j=0;k=-1;next[0]=-1; while(str[j]!='\0') { if(k==-1 || str[j]==str[k]) { j++;k++;
用户1624346
2018-04-17
5300
普通二叉树转换成搜索二叉树
struct ListNode { int data; ListNode *lchild,*rchild; }; void CreateBSTree(ListNode *B2_root,ListNode *BSTree_root) { if(BSTree_root==NULL) { BSTree_root = (ListNode*)malloc(sizeof(ListNode)); BSTree_root->lchild=BSTree
用户1624346
2018-04-17
8340
Binary Tree Level Order Traversal
问题:从上到下打印二叉树的每一行 分析:先搜出二叉树的高度,然后遍历高度,每次搜索一个高度 class Solution { public: int dfs(TreeNode *root) { if(root==NULL) return 0; if(root->left==NULL && root->right==NULL) return 1; return max(dfs(root->left),dfs(root->right))+1;
用户1624346
2018-04-17
5120
Search a 2D Matrix
问题:二维数组中是否存在一个数 class Solution { public: bool dfs(vector<vector<int> > &matrix,int target,int n) { if(n==matrix.size()) return false; if(matrix[n][0]>target) return false; for(int i=0;i<matrix[n].size();i++) {
用户1624346
2018-04-17
5360
Permutations
问题:全排列 class Solution { public: void dfs(vector<int> &num,vector<int> &vec2,vector<vector<int> >&vec1,int step,int vis[]) { if(step==num.size()) { vec1.push_back(vec2); return ; } for(int i=0;
用户1624346
2018-04-17
4650
Rotate Image
问题:矩阵顺时针旋转90度 class Solution { public: bool dfs(vector<vector<int> > &matrix,int target,int n) { if(n==matrix.size()) return false; if(matrix[n][0]>target) return false; for(int i=0;i<matrix[n].size();i++) {
用户1624346
2018-04-17
9720
Plus One
问题:数组模拟整数加1 class Solution { public: vector<int> plusOne(vector<int> &digits) { int i,k=0; int a[100]; for(i=digits.size()-1;i>=0;i--) a[k++]=digits[i]; int c=1; for(i=0;i<k;i++) {
用户1624346
2018-04-17
9060
Minimum Path Sum
问题:从左上角到右下角的最小路径和 class Solution { public: int num[300][300]; int dfs(int x,int y,vector<vector<int> >&grid) { if(x==grid.size()-1 && y==grid[0].size()-1) return grid[x][y]; if(num[x][y]) return num[x][y]; int h1=99999,h
用户1624346
2018-04-17
6350
Unique Binary Search Trees
问题:n个结点总共有多少个二叉搜索树 分析:n=1,sum1=1          n=2,sum2=2;          n=3,sum3=2(头结点为1)+1(头结点为2)+2(头结点为3)          n=4,sum4=5(头结点为1,sum3)+2(头结点为2,sum1*sum2)+2(头结点为3,sum2*sum1)+5(头结点为4,sum3)          n=5,sum5=14(sum4)+5(sum1*sum3)+4(sum2*sum2)+5(sum1*sum3)+14(sum4
用户1624346
2018-04-17
5010
Set Matrix Zeroes
问题:将数组中的某个值为0的元素所在行和列的其他值都为0 分析;遍历数组找到某一值为0然后遍历他的上下左右直到边界,要用while而不能用搜索,因为搜索过去新节点的操作以旧结点一样的操作          要用一个新数组,不然原数组修改后会影响到下次的查找 class Solution { public: void setZeroes(vector<vector<int> > &matrix) { int i,j; int num[330][330];
用户1624346
2018-04-17
6300
Valid Parentheses
问题:The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.,判断符合条件的符号([])也符合 分析:遇到左边符号进栈,右边符号就将栈顶出栈,若和当前遍历的符号相对应则继续遍历下一个符号,若不对应返回false class Solution { public: bool isValid(string s) { stack<cha
用户1624346
2018-04-17
4540
Sum Root to Leaf Numbers
问题:根节点到叶子结点的所有权值和 分析:从根节点遍历,若遍历到叶子结点,则sum+其路径的所有权值和 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution {
用户1624346
2018-04-17
5010
Remove Duplicates from Sorted Array II
问题:消除数组中重复次数超过三次的多余的数 分析:若ai-1==ai-2若ai也相等,则清楚ai class Solution { public: int removeDuplicates(int A[], int n) { int i,j; for(i=2;i<n;i++) { if(A[i-2]==A[i-1]) { if(A[i]==A[i-1])
用户1624346
2018-04-17
5610
Remove Nth Node From End of List
问题:删除距离末尾n个距离的结点 分析:先找出距离末尾n个距离的结点其距离开始的距离多少,然后再删除 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: int front; in
用户1624346
2018-04-17
5500
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战,赢鹅厂证书、公仔好礼!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档