3 消失男孩

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 13w+

[LeetCode][C++]133. 克隆图

133. 克隆图给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node {public int val;public List neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表表示。邻接列表 是用于表示有限图的无序列表的集合。

2020-08-12 22:44:19

[LeetCode][C++]130. 被围绕的区域

130. 被围绕的区域给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不会被填充为 ‘X’。 任何不在边界上,或不与边界上的 ‘O’ 相连的 ‘O’ 最终都会被填充为 ‘X’。如果

2020-08-11 23:34:43

[LeetCode][C++]6. Z 字形变换

6. Z 字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s = “LEETCODEISHIRING”, numRows = 3输出: “L

2020-08-11 23:25:35

[LeetCode][C++]5. 最长回文子串

5. 最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”思路:方法一:动态规划dp[i][j]dp[i][j]dp[i][j]表示以位置 iii 开始、 jjj 结束的子串是否为回文串,长度 len=j−i+1len=j-i+1len=j−i+1 。1.边界条件:若 len=1len=1len=1,则

2020-08-10 23:03:29

[LeetCode][C++]93. 复原IP地址

93. 复原IP地址给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。示例:输入: “25525511135”输出: [“255.255.11.135”, “255.255.111.35”]思路:(1)对于IP地址,其规范有以下:1.分成4部分,每个部分在0~255.2.单个部分,若以0开头,则只能是0,不能是010,001…等位数超过1的。(2)回溯思路1.对于字

2020-08-10 19:23:09

[牛客/校招编程真题][C++]建物流中转站

建物流中转站题目描述Shopee物流会有很多个中转站。在选址的过程中,会选择离用户最近的地方建一个物流中转站。假设给你一个二维平面网格,每个格子是房子则为1,或者是空地则为0。找到一个空地修建一个物流中转站,使得这个物流中转站到所有的房子的距离之和最小。 能修建,则返回最小的距离和。如果无法修建,则返回 -1。若范围限制在100*100以内的网格,如何计算出最小的距离和?当平面网格非常大的情况下,如何避免不必要的计算?输入描述:40 1 1 01 1 0 10 0 1 00 0 0 0

2020-08-03 22:32:00

[牛客/校招编程真题][C++]连续子数组最大和

连续子数组最大和题目描述输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。要求时间复杂度为O(n)。输入描述:【重要】第一行为数组的长度N(N>=1)接下来N行,每行一个数,代表数组的N个元素输出描述:最大和的结果思路:使用两个游标,start表示当前字符串的头部位置, i 表示字符串尾部的位置。使用一个数组记录每一位置的和。res[i]= res[i-1]+nums[i]。由于是要求子数组,我们需要判断每次加上当前数组后,其头部的数是否需要

2020-08-03 22:26:27

[LeetCode][C++]3. 无重复字符的最长子串

无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子

2020-08-01 23:38:44

[LeetCode][C++]84. 柱状图中最大的矩形

84. 柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10思路:看别人的博客表示,对于柱子 iii ,在其两边延伸,直到遇到高度比自己小的,作为边界。然后两个边界之间就是柱子 iii

2020-08-01 20:47:02

[LeetCode][C++]八皇后及N皇后的解法

八皇后及N皇后的解法首先看看八皇后问题:在8X8的国际象棋棋盘上放置8个皇后,使这8个皇后中任意两个不在同一行、同一列、同一斜线上。试求出可能的解法以及总的解法个数。分析:(1)此问题的解必然是一个长度为8的向量,即在64个格子中选取8个,即C 8(上)64(下) = 4.426*10^9种方案,但此思路消耗太大(2)如果我们这样想,设定一个数列loca[8],其中loca[i]代表第i行的皇后所在的列数,由于皇后不在同一行同一列,因此可供选择集合石{0,1,2,3,4,5,6,7},而此时的解集

2020-08-01 00:40:55

[C/C++]零碎知识点

1. 键盘输入(1)get方法:char name[50];cin.get(name,50);cin.get();(2)getline方法:string s;getline(cin,s);(3)cin:string s;cin>>s;2. 子字符串函数string s="abcdef", s1;s1=s.substr(1,2); //substr,而不是subStr3. 字符数组char [] 与字符串string 相互转换://char [] -&g

2020-08-01 00:30:37

[C/C++]二叉树遍历与恢复

二叉树遍历与恢复

2020-07-29 17:11:53

[C/C++]背包问题

问题1:0-1背包问题。给定 nnn 个重量为 { w1w_{1}w1​, w2w_{2}w2​,…, wnw_{n}wn​ },价值 { v1v_{1}v1​, v2v_{2}v2​,…, vnv_{n}vn​ }的物品,给定最大载重 CCC 的背包,每件物品最多装一件,要求背包中的物品价值最大。0-1表示每件物品最多使用一次。思路:我们使用 f(i,c)f(i, c)f(i,c) 表示背包的载量为 ccc,装入 iii 个物品时,包内的价值。基于递归的思想,对于f(i,c)f(i, c)f(i

2020-07-25 21:11:06

[杂谈]关于leetcode刷题

关于leetcode刷题事件:今天终于把leetcode 探索中的算法面试题汇总这个题库刷完了。采用的方法是,先思考,思考不来就搜答案,再自己写或者看着答案写,每题做完,我都写一篇博客,方便以后重新刷题。感悟:感觉自己好菜,刷这个题跟以前上学做题完全不一样,以前上学做题一般提笔就会有思路,做着做着答案就做出来了。这个是一直没思路,做着做着还一直出错。是不是我不熟练?混日子混了太久,脑子不管用了?emmmmmm总之,还需要多回顾。最近的招聘都开始了,我一直不敢投简历,好烦,好像会了一些东

2020-07-20 23:53:27

[LeetCode][C++] LRU缓存机制

LRU缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。进阶:你是

2020-07-20 23:40:49

[LeetCode][C++]加油站

加油站在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入:gas = [1,2,3,4,5]cost = [3,4,5,1,2]

2020-07-20 23:27:00

[LeetCode][C++] Fizz Buzz

Fizz Buzz写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[“1”,“2”,“Fizz”,“4”,“Buzz”,“Fizz”,“7”,“8”,“Fizz”,“Buzz”,“11”,“Fizz”,“13”,“14”,“FizzBuzz”]思路:遍历每个数字,判断是3、5的倍数,按规

2020-07-20 23:07:02

[LeetCode][C++] 两整数之和

两整数之和不使用运算符 + 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1思路:这种看起来基础又很奇怪的题我一般先想到位运算,但是具体怎么运算,我不懂,于是参考别人的博客,链接1写的挺有道理,直接copy。。在位运算操作中,异或的一个重要特性是无进位加法。a = 5 = 0101b = 4 = 0100a ^ b 如下:0 1 0 10

2020-07-20 23:02:32

[LeetCode][C++]快乐数

快乐数编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1思路:使用unordere

2020-07-20 22:52:19

[LeetCode][C++]3的幂

3的幂给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?思路:先的出在类型内最大的3的幂。然后判断能不能被n整除。代码:class Solution {public: bool isPowerOfThree(int n) {

2020-07-20 00:48:03

查看更多

勋章 我的勋章
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。