随笔分类 - 课程
摘要:一、题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 二、思路 数组从左到右和从上到下都是升序的,如果从右上角出发开始遍历呢? 三、代码 public boolean se
        阅读全文
                
摘要:(一)说明 sscanf的作用:从一个字符串中读进于指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串。 sscanf和scanf的区别:scanf是以键盘作为输入源,sscanf是以字符串作为输入源。 (二)函数原型 #include <stdio.h> int sscanf( co
        阅读全文
                
摘要:一、题目 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数 二、思路 观察这个运算:n & (n−1),其运算结果恰为把 n 的二进制位中的最低位的 1变为 0 之后的结果。 三、代码 class Solution { public: int h
        阅读全文
                
摘要:一、题目 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 二、思路 找到链表的中点,以中点为分界,将链表拆分成两个子链表。寻找链表的中点可以使用快慢指针的做法,快指针每次移动 222 步,慢指针每次移动 111 步,当快指针到达链表末尾时,慢指针指向的链表节点即为链表的中
        阅读全文
                
摘要:一、题目 给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差不超过 1。 二、思路 由于构造出的二叉搜索树的中序遍历结果就是链表本身,因此我们可以将分治和中序遍历结合起来,减少时间复
        阅读全文
                
摘要:一、题目 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 二、思路 3 / \ 9 20 / / \ 8 15 7 / \ 5 10 / 4 preorder = [3, 9,
        阅读全文
                
摘要:原文链接:并行编程OpenMP基础及简单示例 一、OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C、C++和Fortran。OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的并行程序设计。 编译器根据程序中添加的pragma
        阅读全文
                
摘要:(一)串行快速排序 程序中 j = right - 1; 语句说明:此句直接从倒数第二个开始,同时由于--j会判断倒数第三个。这是因为在使用三数中值分割后:最后一个一定大于枢纽元,经过交换,倒数第二个就是枢纽元。 #include <iostream> #define CUTOFF 10 // 定义
        阅读全文
                
摘要:一、题目 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 二、思路 我觉得这道题目的思想是: 走完这一生 如果我和你在一起会变得更好,那我们就在一起,否则我就丢下你。 我回顾我最光辉的时刻就是和不同人在一起
        阅读全文
                
摘要:一、题目 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 二、思路 因为超过n/2的数组下标被众数占据了,这样我们随机挑选一个下标对应的元素并验证,有很大的概率能找到众
        阅读全文
                
摘要:一、基础 (一)WSAEVENT 1.说明 WSAEVENT 类型本质上就是使用 CreateEvent 创建的 Event 对象: 2.有关原型 #define WSAEVENT HANDLE (二)WSA_MAXIMUM_WAIT_EVENTS 1.说明 事件对象句柄的最大数目 是WSA_MAX
        阅读全文
                
摘要:一、临界区 (一)概念 临界区指的是一个访问公共资源的程序片段,这些公共资源又无法同时被多个线程同时访问。当有线程进入临界区段时,其他线程或是进程必须等待,以确保这些公共资源是被互斥获得使用。 每个线程中访问临界资源的那段代码称为临界区 (Critical Section),每次只准许一个线程进入临
        阅读全文
                
摘要:(一)解析 在对一个进程的通信部分做分析时反复遇到了这四类函数,特做此记录。 LOWORD:取32位数的低16位 HIWORD:取32位数的高16位 LOBYTE:取16位数的低8位 HIBYTE:去16位数的高8位 ps:LOBYTE、HIBYTE应用于32位数时,会取32位数后16位数的高低8位
        阅读全文
                
摘要:首先是需要的头文件和库: #include<WinSock2.h> #pragma comment(lib,"ws2_32.lib") Tcp连接的简单示例 一、服务器 主要流程及主要函数: 网络环境初始化:WSAStartup 创建服务器套接字:socket 绑定本机IP和端口:bind 监听客户
        阅读全文
                
摘要:一、CPU (一)CPU个数、CPU核心数、CPU线程数 CPU个数即CPU芯片个数 CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。 线程数是一种逻辑的概念,简单地说,就是模拟出的CPU核心数。比如,
        阅读全文
                
摘要:一、信号量 1.说明 信号量是一个同步对象,用于维护零和指定最大值之间的计数。 每次线程完成信号灯对象的等待时,计数都会递减,每次线程释放信号灯时递增。 当计数达到零时,不会再成功等待信号灯对象状态发出信号。 当信号量计数大于零时,会将信号量的状态设置为已发出信号;当信号量计数为零时,会将信号量的状
        阅读全文
                
摘要:格式控制符 说明 %c 输出一个单一的字符 %hd、%d、%ld 以十进制、有符号的形式输出 short、int、long 类型的整数 %hu、%u、%lu 以十进制、无符号的形式输出 short、int、long 类型的整数 %ho、%o、%lo 以八进制、不带前缀、无符号的形式输出 short、
        阅读全文
                
摘要:一、题目 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 二、思路 数组达到有序需要的元素间的交换次数与逆序对个数有关系,也就是说交换次数越多逆序对个数越少。 到了这个地步基本可以猜出排序可能就是解题的方法了,那么常用的要
        阅读全文
                
摘要:一、题目 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 二、思路 创建一个哈希表,然后从左往右遍历数组。 检测哈希表中是否已存在当前字符,若存在,直接返回结果,若不存在,将当前字符加入哈希表,供后续判断使用即可。
        阅读全文
                
摘要:一、题目 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 二、思路 选择中间位置左边的数字作为根节点,则根节点的下标为 mid=(left+right),
        阅读全文
                

 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号