自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 【算法】二分查找及其扩展

二分查找

2022-09-10 13:39:27 270 1

原创 【C++】判断是否为回文数

题目回文数:将这个数反转之后,得到的数仍然是同一个数。解题思路不改变数据类型求出整数的各个位数,并进行对比(在该文章中不进行实现)求出数据对应的翻转,对比新旧整型是否一致改变数据类型(转换为字符串类型)在原字符串上进行对称比较赋值给新字符串,将新字符串翻转,对比新旧字符串是否一致附加提示将整型转换为字符串型:to_string()获取字符串长度:size()字符串的反转:reverse()获取字符串的首元素:begin()获取字符串的末元素:end()代码实现

2021-10-25 14:06:38 5212

原创 【C++】vector实现数组内部元素顺序移动

题目解题思路思路1利用STL容器,在数组中的首元素前添加元素,其元素值为数组中最后一个元素的值删除数组中最后一个元素的值重复上述1,2步,实现k次移动思路2创建新数组v并拷贝原数组nums数组判断循环次数将新数组+移动步数后所得的新值写回原数组nums思路比较思路1:相比于思路2,较为清晰,易于理解思路2:在时间复杂度和空间复杂度都相对优于思路1附加提示在做循环移动时,循环次数不一定是k,应为k%size()ps:考虑到移动步数超过数组长度的情况,eg.长

2021-10-22 23:37:06 3919 1

原创 【C++】三种函数参数传递(值传递、地址传递、引用传递)

值传递特点:形参的变化不改变实参的值定义:func(int a, int b)调用:func(a,b);地址传递形参的变化会改变实参的值定义:func(int *a, int *b)调用:func(&a,&b);引用传递形参的变化会改变实参的值定义:func(int &a, int &b)调用:func(a,b);实例1. 利用三种传递实现值交换#include<iostream>using namespace std

2021-10-08 21:56:44 587

原创 【C++】随机数的产生及其应用

随机数的生成头文件:#include<cstdlib>实现语句:rand()rand()函数解析rand():生成 0-MAX 之间的任意整数rand()%100:生成0-99之间的任意整数rand()%100+1:生成1-100之间的任意整数rand()%101:生成0-100之间的任意整数在一次编译内生成不同的随机数头文件:#include<ctime>实现语句:srand((unsigned int)time(NULL)); //在不同的系统时间生

2021-10-08 15:21:38 163

原创 【C++】字符串对比查找

题目详细代码int strStr(string &source, string &target) {// Write your code here // int flag = 0; if (source.size()<target.size()) return -1; else if (target.size() == 0) return 0; else { for(int i=0,j=0;i<source.size() &&

2021-10-05 22:46:47 252

原创 【C++】字符串和数字之间的转换

字符串转换为数字stoi()string str = "1234"; int a = stoi(str);数字转换为字符串to_string()int a = 1234;string str = to_string(a);

2021-10-05 22:26:55 69

原创 【Linux系统】设置vim编辑器的行数显示

前沿在使用vim编辑器写代码时,显示行数可增加代码的可读性临时设置开启在命令模式下输入:set nu关闭在命令模式下输入:set nonu永久设置开启在终端输入vim ~/.vimrc在新文件中输入set nu并保存...

2021-09-07 12:19:41 597

原创 【Linux系统】解决Ubuntu无法使用apt-get命令的版本问题

ps:该文章以Ubuntu 12.04的版本为例存在问题在linux系统上使用apt-get update命令出现如下问题:分析原因通过以下网址检查该系统版本是否仍处于维护状态http://archive.ubuntu.com/ubuntu/dists/版本名称可通过命令lsb_release -a进行查询若在上述网址中未能查询到您系统对应的版本,则表示您所使用的版本已经过了支持期,即不处于维护状态虽然过期的版本数据源无法得到维护,但也并未被删除,您可以通过在以下的网

2021-08-07 20:27:27 2623 1

原创 SQLServer_审计功能实现

基本概念审计功能:把用户对数据库的所有操作自动记录下来放入审计日记中可审计事件:服务器事件、系统权限、语句事件、模式对象事件审计分类:用户级审计、系统级审计用户级审计:用户针对自己创建的数据库表或试图进行审计,记录所有用户对这些表或试图的一切成功和不成功的访问要求以及各种类型的SQL事件系统级审计:只能由数据库管理员设置,用以监测成功或失败的登录要求,监测授权和收回操作以及其他数据库级权限下的操作SQL语言实现 ps:代码中注释行内的名称均可替换为所需名称开启审计-- 审计

2021-04-28 21:28:22 4432

原创 SQLServer_通过角色将权限授予用户

基本概念数据库角色:一组具有相同权限的用户的集合。SQL实现创建角色-- 创建一个角色R1create role R1;给角色授予权限--赋予角色对 表A 具有选择、更新、插入的权限grant select, update, inserton Ato R1;创建用户名:user_name,用户登录密码设置为:123456create login user_name with password='123456', default_database=master;

2021-04-27 23:48:49 8678

原创 【Linux系统】利用手机端juiceSSH远程控制Linux终端

一 下载juiceSSH二 设置juiceSSH1.认证昵称可自拟用户名与密码 应和虚拟机的用户名一样填写完上述三个选项后点击右上角√2.新建连接点击“+”填写信息填写红框部分,其余默认,填写完后点击右上角的√昵称可自拟(为Linux设定名称)地址为Linux的ip地址查看Linux的IP地址的方法在Linux终端输入 ifconfiginet addr即为IP地址认证即为第一步认证的用户注:也可将该连接添加到其他的分组(当你的手机连接很多Linu

2021-03-09 23:56:12 1675

原创 LC_203. 移除链表元素

提示利用指针遍历值与给定的值是否相等,若相等则跳过【此处用next来判断方便后续的删除】若值不等则跳到下一个指针,此处应用else,否则会与相等的语句中指向下一个指针重复,导致跳过了两个值当链表中只有一个元素时,此时next指针不存在,应另外讨论在多个元素的对比删除时,应创建一个新的指针,在新指针的基础上进行数组的修改部分代码/** * Definition for singly-linked list. * struct ListNode { * int val; * .

2020-11-20 11:09:54 77

原创 LC_496. 下一个更大元素 I

题目理解nums2中的元素要比nums1中的大nums2中的元素应从与nums1中相同的元素开始遍历解题思路利用循环进行数组的遍历和比较提示设定一个整型flag判定是否有下一个更大元素部分代码/** * Note: The returned array must be malloced, assume caller calls free(). */int* nextGreaterElement(int* nums1, int nums1Size, int* nums2, .

2020-11-17 00:41:57 280

原创 LC_面试题 03.02. 栈的最小值

解题思路利用数组的方法对元素进行比较,最后输出最小值问题解决进行最小值的比较时的判断语句不应用strlen,因为栈top虽然减小,但并没有删除对应的元素;应为obj->top部分代码#define SIZE 10000typedef struct { int data[SIZE]; int base, top;} MinStack;/** initialize your data structure here. */MinStack* minStackC.

2020-11-14 10:55:19 74

原创 LC_1047. 删除字符串中的所有相邻重复项

解题思路删除的是重复的项,故只需考虑栈顶和即将入栈的元素是否重复利用数组对栈元素进行拷贝和删除提示在栈为空时,舍去比较的过程,直接将元素压入栈内部分代码char * removeDuplicates(char * S){ int top = -1; for(int p=0; p<strlen(S); p++) { if(top==-1 || S[top]!=S[p]) //若栈空或不相等,将值压入栈内 { .

2020-11-14 09:24:04 93

原创 LC_面试题 02.02. 返回倒数第 k 个节点

解题思路法一_双指针定义两个指针指向head将第一个指针做循环不断指向下一位,直至循环次数为k次将两个指针同步做循环不断指向下一位,直至第一个指针为空返回第二个指针所指向的值法二_单指针(运行时间较短)定义一个指针temp = head,一个常数count = 0第一次用head遍历节点数时不断令count++,统计节点个数第二次用temp遍历节点数,做(count-k+1)次循环返回temp指向的值提示注意循环的次数代码法一_双指针class Solutio.

2020-11-05 10:13:41 109

原创 LC_剑指 Offer 09. 用两个栈实现队列

解题思路利用两个栈实现队列,即一个为主栈stack1,另一个栈stack2作为中介进行转置。当要在队列尾部添加元素时,即在栈顶添加元素,故只需要在stack1的基础上再添加新元素即可。当要删除队列头部的元素时,即实际上是删除栈底的元素,而因为栈只有一个出口,故便要利用中介栈stack2来对栈的元素进行倒置,再删除倒置后的栈顶元素,即为所求元素。提示stackstack1:利用C++的stack容器定义一个元素为int类型的栈。将删除的元素值赋给变量时,要记得在stack2栈顶上删除该元素.

2020-11-02 15:07:03 64

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除