- 博客(145)
- 收藏
- 关注
原创 GitLab/GitHub--删除已经上传的文件、文件夹
GitLab/GitHub--删除已经上传的文件、文件夹GitLab为例子,将已经上传的debug文件删除。1.退到版本库的位置,将版本库拉取下来,强制变基,也就是合并。具体步骤是右击,点击TortoiseGit(辅助工具,自己提前下好),然后拉取,记得勾选变基。成功即可。2.从本地位置找到,所需要删除的文件,然后右键删除3.然后找到你刚才修改的呢个文件夹,右击用Git提交至“master”,也是提前自行安装好git(官网下载即可),然后commit变化,写本次提交的日志备注,.
2021-01-21 16:49:56 1660
原创 Python--1--基本数据类型(PyCham)
Python--1--基本数据类型(PyCham)# 基础数据类型1.定义变量# 1.1.定义整型int变量age = 18# 1.2.定义浮点型floatsalary = 3.02print(type(age))print(salary)运行结果:2.数据类型转换2.1将字符串型转换为int型s = '123'res = int(s)print(s)print(res)print(type(s))print(type(res))运行结果:
2020-12-18 17:27:32 361
原创 代码题--C++--任意进制间转换将十进制数转换为任意进制
代码题--C++--任意进制间转换将十进制数转换为任意进制题目描述设计一个函数, 可以将任意十进制的数, 转换成任意2到9的进制表示的形式。输入描述:需要转换的数字x(0<=x<=1e18) 转换使用的进制k(2<=k<=9)输出描述:对应进制的结果示例1输入33 2输出100001解题思路:首先要知道怎么算n进制的数,就是将数字除以n每次得到的余数将按n的0次方开始得出的值,然后先用一个长为64的数组存放值,然后从后向前输出数据,就是转换后的数据。
2020-12-03 21:04:37 981
原创 代码题--C++--牛客网小米求二叉树的高度
代码题--C++--牛客网小米求二叉树的高度题目描述现在有一棵合法的树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度。输入描述:输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号输出描述:输出树的高度,为一个整数示例1输入50 10 21 31 4输出3解题思路:代码如下:#include <iostrea
2020-12-02 23:50:25 176
原创 代码题--C++--小米--英文句子字符串反转
代码题--C++--小米--英文句子字符串反转题目描述给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”。输入描述:输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)输出描述:对于每个测试示例,要求输出句子中单词反转后形成的句子示例1输入hello xiao mi输出mi xiao hello解题思路
2020-11-30 19:42:17 311
原创 代码题--C++--牛客网--牛牛掷硬币--掷硬币全为正面或者全为反面的概率
代码题--C++--牛客网--牛牛掷硬币--掷硬币全为正面或者全为反面的概率题目描述牛牛最近很喜欢掷硬币,由于他今天很无聊,所以他在家掷了n次硬币,如果这n次硬币全部朝上或者全部朝下牛牛就很开心,请问牛牛开心的概率是多少。(每次掷硬币朝上的概率与朝下的概率相同)示例1输入1返回值"1.00"说明概率为1,四舍五入保留两位小数的字符串为"1.00"示例2输入5返回值"0.06"说明概率为0.0625,四舍五入保留两位小数的字符串为"0.06"备注:对于50\%50%
2020-11-28 00:28:24 616
原创 代码题--C++--小米--二分查找
代码题--C++--小米--二分查找题目描述请实现有重复数字的有序数组的二分查找。输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。示例1:输入5,4,[1,2,4,4,5]返回值3说明输出位置从1开始计算,所以上面是输出3,5是数组长度,4是要查找的数字,后面是数组解题思路:二分查找就是先从最中间的数字开始比较,如果中间数字大于要查找的数字,然后先排除掉小于最小数字的,即mid==0时,以及为了输出第一个大于等于的值,即满足a[mid-
2020-11-27 17:23:03 308
原创 代码题--C++--小米--电话号码分身--用字母识别电话号码
代码题--C++--小米--电话号码分身--用字母识别电话号码题目描述继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"), 然后随机打乱这些字母,所生成的字符串即为电话号码对应的分身。输入描述:第一行是一个整数T(1 ≤ T ≤ 100)表示
2020-11-27 00:22:48 263
原创 代码题--C++--懂二进制两个int32整数的二进制不同的个数
代码题--C++--懂二进制两个int32整数的二进制不同的个数题目描述世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?示例1输入1999 2299返回值7解题思路1:因为32位,所以循环次数是32,然后二进制位的末尾呢个数字其实就是取余2之后的值,然后一个一个判断之后的,每次将值右移1(m>>1;n>>1;),也相当于除以2(m/=2;n/=2;)。#include <ios
2020-11-25 22:39:20 215
原创 代码题--C++--构建短字符串判断用长字符串是否可以组成短字符串
代码题--C++--构建短字符串判断用长字符串是否可以组成短字符串题目描述给定任意一个较短的子串,和另一个较长的字符串,判断短的字符串是否能够由长字符串中的字符构建出来,且长串中的每个字符只能用一次。输入描述:一行数据包括一个较短的字符串S和一个较长的字符串T,用一个空格分隔。保证1<=|S|<=|T|<=100000。输出描述:如果短的字符串可以由长字符串中的字符构建出来,输出字符串 “true”,否则输出字符串 "false"。示例1输入a b输出fals
2020-11-21 13:39:11 304
原创 代码题--C++--最少立方数之和每个数最少可以写成几个数的立方和
代码题--C++--最少立方数之和题目描述给出一个数字N(0<N<1000000),将N写成立方数和的形式,求出需要的最少立方数个数。例如N=17,1+8+8 = 17,最少需要3个立方数,则输出3。N= 28,1+1+1+1+8+8+8=28, 需要7个立方数,1+27=28,需要2个立方数,所以最少立方数为2,则输出2。输入描述:一个数字N(0<N<1000000)输出描述:最少立方数个数示例1输入28输出2解题思路:C++代码:.
2020-11-21 13:04:28 790
原创 代码题--C++--求数列的第n项牛客网第n个数所在的那一层之前的所有层里共有多少个数
代码题--C++--求数列的第n项牛客网第n个数所在的那一层之前的所有层里共有多少个数题目描述:米兔从兔米那里了解到有一个无限长的数字序列 1, 2,3,3,4,4,4, 5,5,5,5,5 ...,(已知此数列有一定规律,现将这些数字按不同数值堆叠,相同值的数字在同一层)。米兔想知道这个数字序列的第n个数所在的那一层之前的所有层里共有多少个数。输入描述:n(n<=1e18)输出描述:第n个数所在的那一层之前的所有层里共有多少个数示例1输入6输出4解题思路:...
2020-11-21 00:14:24 403
原创 代码题--C++--合并两个有序数组
代码题--C++--合并两个有序数组题目描述:给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:...
2020-11-19 22:19:55 262
原创 代码题--C++--偶数在前奇数在后牛客网数组操作
代码题--C++--偶数在前奇数在后牛客网数组操作题目描述:输入一个无序整数数组,调整数组中数字的顺序, 所有偶数位于数组的前半部分,使得所有奇数位于数组的后半部分。要求时间复杂度为O(n)。解题思路:函数中实现,用高低指针,然后判断,如果低位数%2为0,则low++,前面找到奇数,高位数%2为1,则high--,后面找到偶数,然后交换。C++具体实现如下:#include <iostream>using namespace std;int arr[1000005]
2020-11-18 19:01:49 546
原创 代码题--C++--旋转数组求最小值
代码题--C++--旋转数组求最小值题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。输入描述:一个排好序的数组的一个旋转数组长度不超过1000000输出描述:该数组的最小值示例1输入3 4 5 1 2输出1解题思路:使用二分查找的方法,逐步的逼近这个最小值,首先这个旋转数组将一个非递减
2020-11-18 17:18:09 156
原创 数据库--问题3--mysql增删改查管理操作表和字段
数据库--问题3--mysql增删改查管理操作表Linux在创建表之前,先进入mysql数据库中,https://blog.csdn.net/qq_41103495/article/details/109703140然后选中要操作的数据库,进行管理表。1.增,创建表以下为创建MySQL数据表的SQL通用语法,输入命令:CREATE TABLE table_name (column_name column_type);实例,表名:Car_user 表字段:Name_user...
2020-11-17 16:26:26 153
原创 数据库--问题2--mysql数据定义语言增删改查管理数据库
数据库--问题2--mysql数据定义语言增删改查管理数据库1.增,创建数据库在MySQL中,创建数据库,语法格式如下:CREATE DATABASE [IF NOT EXISTS] <数据库名>[[DEFAULT] CHARACTER SET <字符集名>][[DEFAULT] COLLATE <校对规则名>];[ ]中的内容是可选的。语法说明如下:(1)<数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示...
2020-11-16 22:01:54 121
原创 笔试代码题--百度--C++--树上最短路径
笔试代码题--百度--C++--树上最短路径题目:对于一颗完全二叉树(对于有孩子的节点i,其左孩子为2*i,右孩子为2*i+1),给定的两个点之间的最短路的长度是多少,我们认为相邻两点之间的距离为1。输入描述:第一行输入一个整数T,表示测试数据共有T组对于每组测试数据,输入两个整数表示所询问的节点的标号输出描述:对于每组数据,输出一个整数表示答案输入:31 24 148 5输出:153解题思路:在具体实现,先将a ,b的大小比较,确定
2020-11-13 15:56:19 308
原创 代码题--C++--有100个数,有正数,负数,0,求三个数字之和为0的组合,并算出来
代码题--C++--有100个数,有正数,负数,0,求三个数字之和为0的组合,并算出来题目 :一个数组中有100 个数,有正数,负数,0,求三个数字之和为0的组合,并输出。解题思路:方法一:贪婪法:第一层循环,下标i:从数组0下标到size-2位置取一个数; 第二层循环,下标j:从数组i+1下标到size-1位置取一个数; 第三层循环,下标k:从数组j+1下标到size位置取一个数...
2020-11-11 21:58:02 340
原创 Linux--问题2--vi(vim)、touch以及mkdir的区别
Linux--问题2--vi(vim)、touch以及mkdir的区别首先推荐一个Linux命令大全:https://www.runoob.com/linux/linux-command-manual.html1.vim:vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。连 vim 的官方
2020-11-10 21:59:05 3031
原创 C++--问题34--MySQL 事务
C++--问题24--MySQL 事务 MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这些数据库操作( SQL )语句就构成一个事务。(1)在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。(2)事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。(3)事务用来管理 insert,update...
2020-11-08 23:38:52 370
原创 C++--问题33--数据库索引
C++--问题33--数据库索引从物理存储角度:(1)聚集索引 聚集索引是一种索引组织形式,索引的键值逻辑顺序决定了表数据行的物理存储顺序。 聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。 InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不...
2020-11-07 09:28:13 346
原创 笔试代码题--C++--输出概率相等的1和0
有个输出0和1的BIASED RANDOM,它以概率p输出1,以概率1-p输出0,以此RANDOM函数为基础,生成另一个RANDOM函数,该函数以1/2的概率输出1,以1/2的概率输出0题目解答:两次调用该RANDOM函数,如果其概率为P(x),调用2次P(1) = p P(0) = 1-pP'(1) =p P'(0) = 1-p概率如下:11 p*p 10 p*(1-p)01 (1-p)*p 00 (1-p)*(1-p)...
2020-11-04 22:57:52 555
原创 C++--问题30--一个数组找唯一出现两次的数字
题目描述:一个一维数组,长度为count,每个数字不一样,只有一个数字出现过两次,返回这个数字。代码入下:#include<iostream> #include <vector>#include <unordered_map>using namespace std;int Only(int num[],int count){ int res = 0; std::unordered_map<int, int> map; for (i
2020-11-01 16:40:46 814
原创 代码题--C++--判断单链表其中是否有环,寻找链表入环结点
代码题--C++--判断单链表其中是否有环,寻找链表入环结点题目:给定一个单链表,(1)判断其中是否有环,(2)寻找链表入环结点。1.判断时候有环(链表头指针为head)对于这个问题我们可以采用“快慢指针”的方法。就是有两个指针fast和slow,开始的时候两个指针都指向链表头head,然后在每一步操作中slow向前走一步即:slow = slow->next,而fast每一步向前两步即:fast = fast->next->next。由于fast要比slow移动的快,
2020-10-26 15:37:39 547
原创 C++--问题32--TCP与UDP的区别
C++--问题32--TCP与UDP的区别TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接),通过三次握手建立连接;UDP是无连接的,即发送数据之前不需要建立连接。2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的。 UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用...
2020-10-26 14:20:54 427
原创 C++--问题31--struct和class的区别
C++--问题31--struct和class的区别1.struct在C语言里面是定义结构体的,在C++语言用struct定义的都是类。因此在C++中, (1)struct可以包含方法吗?能! (2)struct能写访问限定符吗?能! (3)struct能实现继承多态吗?能! (4)默认继承时,基类用struct或者class定义,继承方式有区别吗?有!class是public继承,struct是private 继承 (5)定义模板参数列表时,class能用来定义模板类型参数,s
2020-10-26 11:24:16 133
原创 C++--问题29--BST,AVL,B树,B+树,红黑树的区别
C++--问题29--BST(二叉查找树),AVL(平衡二叉树),B树,B+树,红黑树的区别(1)二叉查找树(BST):二叉查找树就是左结点小于根节点,右结点大于根节点的一种排序树,也叫二叉搜索树。也叫BST,英文Binary Sort Tree。二叉查找树比普通树查找更快,查找、插入、删除的时间复杂度为O(logN)。但是二叉查找树有一种极端的情况,就是会变成一种线性链表似的结构。此时时间复杂度就变味了O(N),为了解决这种情况,出现了二叉平衡树。(2)平衡二叉树(AVL):平衡二
2020-10-25 16:52:31 435 1
原创 C++--问题28--虚继承
C++--问题28--虚继承1.普通的多重继承一个派生类是由多个基类继承过来的代码如下:/** 普通继承(没有使用虚基类)*/#include<iostream> using namespace std;// 基类A class A{public: int dataA;};class B : public A{public: int dataB;};class C : public A{public: int dataC;...
2020-10-25 15:43:22 147
原创 C++--问题27--如何检测内存泄漏
C++--问题27--如何检测内存泄漏1.内存泄露的定义:动态分配内存所开辟的空间,在使用完毕后未手动释放,导致一直占据该内存,即为内存泄漏。2.造成内存泄漏的几种原因:(1)类的构造函数和析构函数中new和delete没有配套。(2)在释放对象数组时没有使用delete[],使用了delete。(3)没有将基类的析构函数定义为虚函数,当基类指针指向子类对象时,如果基类的析构函数不是virtual,那么子类的析构函数将不会被调用,子类的资源没有正确释放,因此造成内存泄露。(4)没
2020-10-25 13:07:23 203
原创 C++--问题26--强制类型转换
C++--问题26--强制类型转换1.C语言的类型强转 方式如下:(Type)value/expression 就是在变量或者表达式前面加小括号和类型表示类型强转。 2.C++提供了自己特有的四种类型强转分别如下:(1)static_cast:更安全的类型强转,static_cast它能在内置的数据类型间互相转换,对于类只能在有联系的指针类型间进行转换。(2)dynamic_cast:支持RTTI类型转换 ,通常在基类和派生类...
2020-10-24 23:53:27 269
原创 C++--问题25--socket通信流程
C++--问题25--socket通信流程1.什么是Socket? 网络中的进程是通过socket来通信的。socket起源于 Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,socket是“open—write/read—close”模式的一种实现,那么socket就提供了这些操作对应的函数接口。2.socket通信流程 以使用TCP协议通讯的socket为例,其交互流程大概是:(1)socket():函数就是生成一个用于通信的套接字文...
2020-10-19 18:08:36 238
原创 Linux--2--模拟百度网盘实现文件传输项目
Linux--2--模拟百度网盘实现文件传输项目项目简介:用C/C++语言模拟百度网盘,实现 Windows 与 Linux 之间上传,下载,交互文件。项目环境:Red Hat Enterprise Linux 6具体实现:采用多线程编程,用创建监听套接字 socket ,用TCP协议,实现交互方式,先创建管道,然后fork产生子进程,在子进程中用exec函数进行替换命令,用管道写端dup2覆盖替换标准输出,然后父进程将管道数据读出,发送给客户端,实现下载方式,用自定义协议,服务器端给客户...
2020-10-19 16:27:59 2123 1
原创 笔试代码题--C++--深信服--田忌赛马
笔试代码题--C++--深信服--田忌赛马题目描述:田忌的马和齐王的马比赛,田忌知道齐王的马标号以及出场顺序以及速度大小,问田忌怎么安排自己的出场顺序,能胜算大。输入描述:N:代表总共N场比赛,T代表这场比赛中有速度为Ai的共T匹马上场。然后是齐王的马速度以及排位顺序,下一行是田忌的马的速度以及顺序输出描述:第一场的田忌的马的标号顺序,例如下面的例子中第二行是2 3 1 4,代表在(4 7 10 6)中,应该上场的顺序为(7 10 4 6)。实例1:输入:232 1 3
2020-10-15 23:51:57 999
原创 C++--问题24--进程的上下文切换
C++--问题21--进程的上下文切换PCB 是进程存在的唯一标识,这意味着一个进程的存在,必然会有一个 PCB,如果进程消失了,那么 PCB 也会随之消失。PCB 具体包含信息:
2020-10-15 17:07:28 1181
原创 C++--问题23--进程调度
C++--问题22--进程调度进程调度: CPU在每个系统滴答(Tick)中断产生的时候,检查就绪队列里面的进程(遍历链表中的进程结构体),如有符合调度算法的新进程需要切换,保存当前运行的进程的信息(包括栈信息等)后挂起当前进程,选择新的进程运行,这就是进程调度。 一般把调度算法分为两类:非抢占式调度算法和抢占式调度算法。非抢占式调度算法挑选一个进程,然后让该进程运行直到被阻塞,或者直到该进程退出,才会调用另外一个进程,也就是说不会因为时钟中断改变调用。抢占...
2020-10-15 17:05:06 185
原创 代码题--C++--压缩字符串
代码题--C++--压缩字符串题目描述:给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。示例 1:输入:["a","a","b","b","c","c","c"]输出:返回 6 ,输入数组的前 6 个字符应该是:["a","2","b","2","c","3"]说明:"aa" 被 "a2" 替代。"bb" 被 "b2" 替代。".
2020-10-14 17:01:03 391
原创 C++--问题22--struct结构体计算占内存大小
C++--问题22--struct结构体计算占内存大小先得列出在32位编译环境下的字节大小:1字节:char2字节:short (不管是不是signed或unsigned)4字节:int、long、float (不管是不是signed或unsigned)8字节:double如果等号是 '=' 这种字符常量的话,当然是1字节,如果是 “=” 这种字符串常量当然是2字节。注意:struct 的{}后面要加上分号";"...
2020-10-14 16:11:48 737
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人