C++
绝非小练
做最好的自己
展开
-
圆圈中最后剩下的数字
题目0,1,2,3,… ,n-1 这 n 个数字排成一个圆圈,从数字 0 开始,每次从这个圆圈里删除第 m 个数字。求出这个圆圈里剩下的最后一个数字。思路设所要求的结果是 F(N, M) 表示在 N 个人围成一个圆圈中每次删除第 M 个数字圆圈里剩下的最后一个数字的编号。在 N 个数字圆圈中第一次删除的数字的编号为 (M-1)% N,此时圆圈剩下:0 1 2 … (M-1)%N-1 (M-1)%N+1 … N-1下一次删除数字从 (M原创 2020-09-17 10:54:47 · 121 阅读 · 0 评论 -
数据结构与算法基础
数据结构与算法基础平衡二叉树二叉查找树(BST)平衡二叉树平衡二叉树也叫AVL树,AVL树的名字来源于它的发明作者G.M. Adelson-Velsky 和 E.M. Landis。AVL树是最先发明的自平衡二叉查找树(Self-Balancing Binary Search Tree,简称平衡二叉树)。定义:它或者是一颗空树,或者具有以下性质的二叉排序树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。必要条件:1)必须师二叉查找树2)每个节原创 2020-09-11 23:04:53 · 187 阅读 · 0 评论 -
操作系统知识记录
操作系统基础知识进程与线程信号进程间通信TCP 和 UDP 的区别进程与线程进程:一个运行着的程序叫做进程,包含了该程序的地址空间和该程序所需要的系统资源。线程:在一个程序中的多个执行路线就叫做线程。线程优点:开销小,切换速度快,线程切换时操作系统做的工作少。缺点: 1)写多线程程序要仔细,共享变量会引发问题。 2)多线程程序调试会很困难线程同步:信号量,互斥量。互斥量和信号量的区别:1)互斥是指同一时刻只允许一个线程对某一资源的访问,具有唯一性和排他性,但无法限制访问者对资源的访问顺序。同原创 2020-09-09 20:57:13 · 87 阅读 · 0 评论 -
C++基础知识整理
C++基础知识C语言中宏定义的理解C++运行时分为哪几个区C++中的 new 和C语言中的 malloc 的区别全局变量和静态变量static全局变量与普通的全局变量有什么区别 ?static局部变量和普通局部变量有什么区别 ?static函数与普通函数的区别stctic成员变量和static成员函数C++多态的概念C语言中宏定义的理解#define是C语言中提供的宏定义方法,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率有两种常用的宏定义:(1)简单的宏定义:#d原创 2020-09-04 16:01:57 · 2122 阅读 · 0 评论 -
C++ string split() 和 trim() 的简单实现
@[TOC](C++ string split() 和 trim() 的简单实现)引言在Java语言中,对其中的字符串提供了比较丰富的库函数,其中使用比较多的当属 trim() 和 split(),为了在C++中使用着两个函数,需要自己编写。string trim()在Java语言中trim()的作用是去除首尾的空格,在C++语言中实现如下void trim(string & str){ int i = 0; while (i < str.size() && '原创 2020-08-28 22:43:47 · 278 阅读 · 0 评论 -
C++优先队列的妙用
目录原题思路源码结果原题剑指 Offer 41. 数据流中的中位数如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedi原创 2020-08-01 18:25:03 · 129 阅读 · 0 评论 -
C++ 逻辑变量 与、或使用时注意表达式的顺序
目录原题第一次编码结果问题解决办法第二次编程第二次结果原题请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、“±5”、"-1E-16"及"12e+5.4"都不是。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof著作权归领扣网原创 2020-07-18 22:06:05 · 712 阅读 · 0 评论 -
C++ int 型负数转换成 unsigned int 型时注意溢出
目录C++ int型,题目C++ int型,C++ int 型一般为32位,范围为[−2[^31], 2[^31] − 1] ,当负数最小值转换成正数时会溢出,所以要特别小心。题目实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入:原创 2020-07-18 10:38:26 · 1903 阅读 · 0 评论