- 博客(90)
- 收藏
- 关注
原创 打印从1到最大的n位数
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。本题没有什么特殊的算法逻辑,就是简单明了,求出n位数的最大值,然后逐个打印。
2023-03-26 17:55:26 97
原创 二进制中1的个数
计算一个整数的二进制表示中1的个数,我们很自然就会想到让他自己去与1进行按位与操作,然后再进行移位。本题较简单的一个点是,对于负数,已经用补码表示出来了,如果负数不是补码表示的话,恐怕还比较费劲。输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。
2023-03-26 17:35:42 77
原创 旋转数组的最小值
有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。1、分而治之的思想,以及考虑边界情况,如这道题中如果中间值与右边的值相等,那么应该怎么办?二分法,因为旋转的两部分都是有序的,且都是非降序的。最原始的方法,遍历数组,找出最小值。
2023-03-26 17:10:29 91
原创 剑指offer——两个栈实现队列功能
用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。一个栈用于增加(push)元素,一个栈用于实现pop操作,需要注意的是队列的规则是先进先出,所以对于栈2中存储的元素需要和栈1中存储的元素顺序刚好相反才可以实现队列的pop规则。
2023-03-19 16:51:14 95
原创 java 写http请求,请求体中含有特殊字符处理
在用java发送请求时,如果请求体中含有特殊字符花括号{},则应该先进行编码,不然会报错,需要进行如下处理:String bodys = body.replace("\"", "%22") .replace("{", "%7b").replace("}", "%7d");这样才可以正常发送请求...
2022-05-30 17:06:08 1779
原创 sell脚本变量与下划线共存时踩坑记录
最初的shell脚本如下:#!/bin/bashfor i in `seq 1 10`docurTime=$(date "+%Y%m%d")cur_sec=`date '+%s'`sql="create table if not exists record.testw_$curTime_$i (\`id\`int,\`test_string\`string);"sql1="insert overwrite table record.testw_$curTime_$i select 123 as
2022-05-30 15:23:23 583
原创 idea字符串中含有双引号如何输入
比如一个字符串是从别的地方粘过来的,里面含有双引号,你想要把它作为你的string值,则直接粘会报错,解决方法:string params = “粘的字符串”;就可以了,先给变量加上双引号,然后再把内容粘过去,这样粘贴内容的双引号就不用手动去加转义字符了。...
2021-12-30 20:52:23 1231
原创 2021-09-02
mac安装brew:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"卸载brew:/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/uninstall)"
2021-09-02 18:21:00 107
原创 mysql8.0.22安装的血泪史!
不多说,直接一点,安装的过程中,这儿一定要选第二个!选第二个就一路顺畅,如果选了第一个,启动的时候总是报类似于PID错误的怪东东。重装了好几遍才装上的,应该是8以上的版本都有这个选项,其他不清楚了。...
2021-09-02 16:53:07 102
原创 Ubuntu18.04安装ROS Melodic
因为实验室需要,搭建一个ros平台,因现有平台是ubuntu18.04,所以选择ros melodic版本进行安装。关于该平台的搭建,官方给出了教程,http://wiki.ros.org/melodic/Installation/Ubuntu,在此记录一下踩过的坑。坑一、 step1.4中,更新系统软件源,报错如下:解决方法很简单,下载导入公钥就行,下载导入key的命令如下:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys
2020-12-28 22:52:25 198 1
原创 mysql踩坑记录
【好记性不如烂笔头】之前在电脑上装过mysql,但最近想在学一下发现忘记了登陆密码,索性卸载了mysql重新安装了。卸载首先查看mysql的依赖项:dpkg --list|grep mysql然后卸载:sudo apt-get remove mysql-commonsudo apt-get autoremove --purge mysql-server-5.7清除残留数据:dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P再次
2020-12-23 22:39:01 246
原创 java学习初笔记
小白开始学习java,也是跟着菜鸟教程学的(https://www.runoob.com/java/java-object-classes.html),仅以此记录。首先安装java,去官网找到合适自己系统的包下载:https://www.oracle.com/java/technologies/javase-downloads.html这里我下载的jdk-15.0.1_linux-x64_bin.deb包,然后命令行执行 sudo dpkg -i jdk-15.0.1_linux-x64_bin.de
2020-11-25 17:19:56 96
原创 python函数传参
在python中,string,number,tuple属于不可变类型,dict,list,set属于可变类型。传不可变对象实例在函数里改变对象的值在函数外并不会有影响传可变对象实例可变对象在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。...
2020-11-14 19:27:13 114
原创 python函数调用参数类型
python在函数调用时的参数类型有:必须参数默认参数关键字参数不定长参数1.必须参数必须参数要求在调用时必须以正确的顺序传入函数,参数的类型、顺序、数量均需与声明时相同。2.默认参数调用函数时,如果没有传递参数,则会使用默认参数。3.不定长参数当我们需要一个函数能够处理比当初声明时更多的参数时,就需要使用不定长参数。还有一种就是参数带两个星号**。可以看到,带两个星号的,默认将传入的数据当作字典。匿名函数:lambda表达式语法: lambda [arg1 [,arg2
2020-11-14 11:29:54 850
转载 解决ubuntu18.04下ibus-libpinyin 拼音无法选择除第一个的候选词问题以及中英文切换问题
莫名其妙,在使用时,用ibus拼音输入法打字,只要不是首候选词,按数字选择就会直接打出数字,然后输入法变成英文,必须重新切换才行。解决办法:cd ~/.cache/ibusrm -rf libpinyin参考链接:https://blog.csdn.net/Hreticent/article/details/85881531...
2020-11-12 17:32:03 432 1
原创 linux终端运行matlab程序
课题项目需要,需要在服务器上远程跑程序,现在的操作是在本机将代码写好之后scp到服务器上去跑。ssh远程登录服务器之后,进入到matlab的安装目录/usr/local/MATLAB/bin/,然后执行指令matlab,进入matlab,此时用pwd查看还处于matlab所在的目录下,cd到matlab程序文件夹下,如所需运行的matlab .m文件名为test.m,在命令行输入test回车即可运行起该程序。另外,发现了pycharm也可以远程debug,需要的同学可自行查找资料学习。【年轻人要戒骄
2020-10-27 15:38:54 2367
原创 力扣678——有效的括号字符串
题目描述:解题思路:不同于之前做的 valid parenthse,这道题给的字符串还含有特殊字符*,且该字符可以为 ( 或 )。解题思路即为遇到)则用出现过的( 或* 去抵消,对剩下的字符串进行判断。class Solution {public: bool checkValidString(string s) { vector<char>left; vector<char>star; for(int i=0;i<
2020-09-12 00:04:20 338
原创 mongodb的简单使用
1.进入mongo:mongo2.展示所有的数据库:show dbs3.使用某个数据库:use db_name4.查看当前使用数据库db5.查看当前数据库下的所有集合:show collections6.为某个集合添加一个字段,若字段存在则更新,不存在则创建:db.task_add.update({},{$set:{which_car:""}},{multi:1})这样,就为task_add的集合添加了which_car的字段,且该字段的初始值为"",multi为1代表所有满足条件的
2020-09-03 10:50:36 97
原创 2020-08-28
题目描述:输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)解题思路:两个链表有公共节点,说明从公共节点开始往后,两个链表的内容相同。思路即是先让较长的链表先走diff步,然后两个链表再一块走,就能找到第一个公共节点。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};
2020-08-28 19:05:29 88
原创 中序遍历二叉搜索树
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<int> inorderTraver
2020-08-25 22:52:29 159
原创 记阿里8.21笔试----过河问题
题目描述:小强作为强班的班长,决定带着色含他在内的几个同学去春游路程走到一半发现前面有一条河流且只有一条小船经过实验后发现这个小船一次最多只能运送两个人而且过河的时间是等于两个人中体重较大的那个人的体重如果只有一个人那么过河时间就是这个人的体重现在小强想请你帮他分析如何安排才能在最短时间内使所有人都通过这条河流小强很懒他并不得知道具体怎么过河只要你告诉他最短的时间。输入描述:第一行输入一个整数工 表示有T组测试数据每组数据,第一行输入一个整数n,表示人数.接下来一行输入n个整数ai,表示n个人的体重。
2020-08-22 00:19:45 1148 1
原创 200820--做题记
题目描述:给定一字符串,删除字符串中的‘abc’(不区分大小写),e.g., 输入abABc123,输出ab123.// study.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单// 调试程序: F5 或调试 >“开始调试”菜单// 入门使用技巧: // 1. 使用解决方案资源管理器窗口添加/管理文件// 2. 使用团队资源管理器窗口连接到源代码管理// 3. 使用
2020-08-20 00:54:24 93
原创 2020-08-19
华为机试:题目描述:给定n个字符串,请对n个字符串按照字典序排列。解题思路:首先想到的肯定是对字符串数组进行直接排序,然后输出结果,在数组中有sort函数可以使用,在string中同样可以自己写一个排序函数,实现对字符串数组的排序。#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;bool cmp(string
2020-08-19 00:00:48 99
原创 华为机试--求连续最大bit数
题目描述:功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1输入: 一个byte型的数字输出: 无返回: 对应的二进制数字中1的最大连续数解题思路:求输入所对应二进制数字中1的最大连续数,首先需要知道数字是如何转化成二进制的:数字对2求余的结果。知道了这个,就好做这道题了,当求余结果为1就累积加,否则将累加的结果清零。#include<iostream>using namespace std;int main(){
2020-08-11 09:36:29 300 1
原创 华为-在字符串中找出连续最长是数字串
题目描述:输入描述:输入一个字符串。输出描述:输出字符串中最长的数字字符串和它的长度,中间用逗号间隔。如果有相同长度的串,则要一块儿输出(中间不间隔),但是长度还是一串的长度,与数字字符串间用逗号间隔。解题思路:当遇到数字时,统计连续数字的个数,若大于当前统计到的最大长度,则保存到数组,数组的最后端保存的肯定是最长的。再判断一下倒数第一和倒数第二的长度是否相同,若相同,则按照题述要求输出。#include<iostream>#include<string>#inc
2020-08-06 00:38:30 316
原创 力扣-Z字形变换
题目描述:将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:解题思路:在明确了字符的排列顺序后,题目要求是按照行的排列顺序输出,所以想到使用字符串数组来保存每一行的字符串。class Solution {public: string convert(string s, int numRows) { int len=s.size(); if(numRo
2020-08-03 00:42:41 313
原创 力扣-三数之和
题目描述:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。解题思路:为防止有重复三元组的情况,首先把数组排序。对于找三元组,可以使用暴力求解的方法,但如果对运行时间有限制的话, 会超时。本文采用固定一个数,另外两个数的求解用双指针的方法。class Solution {public: vector<vector<int&g
2020-08-02 22:56:08 204
原创 力扣-加一
题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。解题思路:首先,当最后一位元素不是9,直接加一返回即可;当最后一位元素是9时,考虑逐级判断进位。class Solution {public: vector<int> plusOne(vector<int>& digits) { int len=dig
2020-08-02 02:04:21 224
原创 力扣26- 删除排序数组中的重复项
题目描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。解题思路:当当前数字与后一个数字不同时,保存当前数字,不管当前数字出现了几次,当然需要考虑最后一个出现的数字。class Solution {public: int removeDuplicates(vector<int>& nums) { ve
2020-08-02 01:33:43 116
原创 力扣-旋转数组
题目描述:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。解题思路:由题述可以看到,向右移动k,则数组的后k个元素就移到前面了,前n-k个元素放到了后面,可以先将整个数组反转,然后逐段反转。class Solution {public: void rotate(vector<int>& nums, int k) { reverse(nums.begin(),nums.end()); reverse(nums.beg
2020-08-01 22:07:52 239
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人