3 丸子姑娘vivi

尚未进行身份认证

我要认证

独立思考 好好科研

等级
TA的排名 16w+

华为-在字符串中找出连续最长是数字串

题目描述:输入描述:输入一个字符串。输出描述:输出字符串中最长的数字字符串和它的长度,中间用逗号间隔。如果有相同长度的串,则要一块儿输出(中间不间隔),但是长度还是一串的长度,与数字字符串间用逗号间隔。解题思路:当遇到数字时,统计连续数字的个数,若大于当前统计到的最大长度,则保存到数组,数组的最后端保存的肯定是最长的。再判断一下倒数第一和倒数第二的长度是否相同,若相同,则按照题述要求输出。#include<iostream>#include<string>#inc

2020-08-06 00:38:30

力扣-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

力扣-三数之和

题目描述:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。解题思路:为防止有重复三元组的情况,首先把数组排序。对于找三元组,可以使用暴力求解的方法,但如果对运行时间有限制的话, 会超时。本文采用固定一个数,另外两个数的求解用双指针的方法。class Solution {public: vector<vector<int&g

2020-08-02 22:56:08

力扣-加一

题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。解题思路:首先,当最后一位元素不是9,直接加一返回即可;当最后一位元素是9时,考虑逐级判断进位。class Solution {public: vector<int> plusOne(vector<int>& digits) { int len=dig

2020-08-02 02:04:21

力扣26- 删除排序数组中的重复项

题目描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。解题思路:当当前数字与后一个数字不同时,保存当前数字,不管当前数字出现了几次,当然需要考虑最后一个出现的数字。class Solution {public: int removeDuplicates(vector<int>& nums) { ve

2020-08-02 01:33:43

力扣-旋转数组

题目描述:给定一个数组,将数组中的元素向右移动 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

力扣122-买股票的最佳时期II

题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)解题思路:一只股票可进行多次买卖,获得最大利润的前提是低价买入,高价卖出,但在买入前手里的股票必须全部卖出。 将股票价格画成折现显示如下:可分别在A和B区间买卖股票。class Solution {public: int maxProfit(vecto

2020-08-01 21:27:55

广联达21届提前批0729笔试

每次做笔试都给自己降维式打击,不是一般的菜。但是也不能自暴自弃啊,毕竟还要迎接秋招的暴风雨。第一题:(截图是从牛客帖子上找的,不是我考试时截的)菜鸟只A了46%,但是这个通过率还是不准确的,因为我写的逻辑就不对,不知道后台是给的什么样的测试用例。后来又自己想了一下,先附上代码:#include<iostream>#include<algorithm>#include<vector>using namespace std;int main() {

2020-07-30 22:52:51

广联发21届提前批笔试

明天参加笔试,今天看了一下上一批次同学做的笔试题,做下记录。题目描述:给出你n条长度不一的边,请你从中选择四条边,组成一个最大的平行四边形。请你输出最大的平行四边形的面积。输入描述输入第一行包含一个正整数n,表示边的数量。(4<=n<=50000)输入第二行包含n个正整数,表示n条边的长度,边的长度不会超过10^9。输出描述输出仅包含一个正整数,即最大的平行四边形的面积,无解则输出-1。样例输入5 3 3 4 4 5样例输出12解题思路:用一个map记录每个值出现的次数

2020-07-29 01:04:25

华为机考——字符串分割

题目描述连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。首先输入一个整数,为要输入的字符串个数。例如:输入:2abc12345789输出:abc000001234567890000000解题思路思路并没有什么新颖之处,关键在于处理结束输入,一开始没有加结束输入条件,怎么也不通过,后来加了while(cin>>n)之后就编译通过了。#include<io

2020-07-26 10:39:37

求最小公倍数

题目描述正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。解题思路:首先找出输入中两个数的较大值,让它从1开始找自己的倍数,每找一个,测试该倍数是否也同时是较小值的倍数,如果是,输出该数。#include<iostream>using namespace std;int main(){ int a,b; cin>>a>

2020-07-20 23:03:21

Ubuntu16.04安装python3.7.5

首先,去官网下载源码:https://www.python.org/downloads/release/python-375/进入压缩包所在目录,进行解压sudo tar -zxvf Python-3.7.5.tgz安装依赖sudo apt-get install libffi-dev配置cd Python-3.7.5 进入解压后的文件夹目录./configure --prefix=/opt/python3.7编译sudo make安装sudo make install创建软连接.

2020-07-20 20:33:11

小红书2020校招测试开发&后端笔试题卷一

“记录一下做的小红书的笔试”题目描述:薯队长写了一篇笔记草稿,请你帮忙输出最后内容。1.输入字符包括,"(" , “)” 和 "<“和其他字符。2.其他字符表示笔记内容。3.()之间表示注释内容,任何字符都无效。 括号保证成对出现。4.”<“表示退格, 删去前面一个笔记内容字符。括号不受”<"影响 。输入描述:输入一行字符串。长度<=10000.输出描述:输出一行字符串,表示最终的笔记内容。输入例子1:Corona(T

2020-07-12 19:10:46

小红书——测开编程题-动态规划

题目描述:某小红薯在小红书的活动中抽奖中了一定价值的薯券,这些薯券可以用来购买一批商品,求有多少种购买组合。其中一件商品可以买多件。输 入:薯券金额、商品分别价格输出 :组合数例:输入 10 [2,3,5]输出 4题解:组合数:[2,2,2,2,2],[2,2,3,3],[2,3,5],[5,5]解题思路:动态规划,看了其他同学的代码,解释一下代码含义:一定要注意题述的输入形式,这道题中,输入是一个整数和一个字符串,读取到有效数字后,dp[j]=dp[j]+dp[j-data[i]], 其

2020-07-05 22:59:42

LeetCode——generate parentheses

题目描述:给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合。例如,给出n=3,解集为:“((()))”, “(()())”, “(())()”, “()(())”, “()()()”解题思路:对于回归问题,到现在也不太会使。看了其他同学的解答才明白一点,讲一下代码的思路吧。l和r分别代表字符串中剩余‘(’和‘)’的个数,当剩余左括号的个数大于右括号时,肯定不是合法的组合,直接返回;当剩余左括号的个数小于等于右括号的个数时,可以增加左括号,也可以增加右括号。class Soluti

2020-07-03 20:23:47

LeetCode——valid parentheses

题目描述:给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。解题思路:使用栈。当遇到括号的左半边时,直接入栈,当遇到右半边时,判断栈顶元素是不是和右半边对应的括号,若不是,返回false,若是,弹出栈顶元素,进行下一个判断。class Solution {public: /** * * @param s

2020-07-02 21:42:58

LeetCode——remove n-th node from end of list

题目描述:给定一个链表,删除链表的倒数第n个节点并返回链表的头指针例如,给出的链表为:1->2->3->4->5, n= 2.↵↵ 删除了链表的倒数第n个节点之后,链表变为1->2->3->5.备注:题目保证n一定是合法的请尝试只用一步操作完成该功能解题思路:删除链表倒数第n个节点,关键是找到该节点且尽量使用较少的循环。可以使用两个指针,一个指针先走n步,另一个指针才开始同步走,这样当快指针到达链表尾部的时候,慢指针也刚好指到要删除节点的上一个

2020-07-01 20:18:34

LeetCode——letter-combinations-of-a-phone

题目描述:给出一个仅包含数字的字符串,给出所有可能的字母组合。数字到字母的映射方式如下:(就像电话上数字和字母的映射一样)注意:虽然上述答案是按字典序排列的,但你的答案可以按任意的顺序给出解题思路:由题述可知,输入是给定一个由数字组成的字符串,每个数字对应电话上的字符串,要求输出所有可能的字母组合。首先会考虑由给定的输入可以得到每个数字对应的字符串,剩下的工作就是如何得到这些字符串的排列组合:常规的思路就是首先固定第一个数字对应的第一个字符,然后一次与剩余字母对应的字符串组合,但这样会用好多f

2020-07-01 16:22:04

LeetCode——4sum

题目描述:给出一个有n个元素的数组S,S中是否有元素a,b,c和d满足a+b+c+d=目标值?找出数组S中所有满足条件的四元组。注意:四元组(a、b、c、d)中的元素必须按非降序排列。(即a≤b≤c≤d)解集中不能包含重复的四元组。例如:给出的数组 S = {1 0 -1 0 -2 2}, 目标值 = 0.↵↵ 给出的解集应该是:↵ (-1, 0, 0, 1)↵ (-2, -1, 1, 2)↵ (-2, 0, 0, 2)解题思路:这一道题相比于前两道又升级了,要求输

2020-06-30 12:03:28

LeetCode——3sum-closest

题目描述:给出含有n个整数的数组s,找出s中和加起来的和最接近给定的目标值的三个整数。返回这三个整数的和。你可以假设每个输入都只有唯一解。例如,给定的整数 S = {-1 2 1 -4}, 目标值 = 1.↵↵ 最接近目标值的和为 2. (-1 + 2 + 1 = 2).解题思路:本题与上一题有相似之处,但该题是给出最接近目标值的三个整数的和,且结果只有唯一解。思路与上一题一样,均是遍历。class Solution {public: /** * * @para

2020-06-30 10:35:22

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。