自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Nayido的博客

just for learning

  • 博客(54)
  • 收藏
  • 关注

原创 NC20 数字字符串转化成IP地址

描述现在有一个只包含数字的字符串,将该字符串转化成IP地址的形式,返回所有可能的情况。例如:给出的字符串为"25525522135",返回["255.255.22.135", "255.255.221.35"]. (顺序没有关系)示例1输入:"25525522135"返回值:["255.255.22.135","255.255.221.35"]我用深搜解的C++ Vector 传参, 函数处带&才是穿实参。class Solution {p

2021-09-08 16:03:31 278

原创 NC8 二叉树根节点到叶子节点和为指定值的路径

描述给定一个二叉树和一个值sum\ sumsum,请找出所有的根节点到叶子节点的节点值之和等于sum\ sumsum 的路径,例如:给出如下的二叉树,sum=22\ sum=22sum=22,返回[[5,4,11,2],[5,8,9]]示例1输入:{1,2},1返回值:[]示例2输入:{1,2},3返回值:[[1,2]]是我比较擅长的深搜题/** * struct TreeNode { * int val;...

2021-09-03 19:32:23 78

原创 NC7 买卖股票的最好时机

描述假设你有一个数组,其中第i\ ii 个元素是股票在第i\ ii 天的价格。你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。示例1输入:[1,4,2]返回值:3示例2输入:[2,4,1]返回值:2这个题是简单题,可以暴力解决。不过其实优化解法也挺有意思的。第一遍循环计算 prices[i] - prices[i-1]并存储于money第二遍循环计算 money的累加值,有点像寻...

2021-09-03 19:24:55 96

原创 NC6 二叉树的最大路径和

描述给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少。这个路径的开始节点和结束节点可以是二叉树中的任意节点例如:给出以下的二叉树,返回的结果为6示例1输入:{-2,1}返回值:1示例2输入:{-2,#,-3}返回值:-2定义一个中间变量:节点最大贡献值 = node->val + max(left_num + right_num);表示如果该节点不为根节点时,走过该节点的路径能获得的最大贡献值。经过节点A.

2021-09-03 19:10:49 113

原创 NC119 最小的K个数

描述给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。0 <= k <= input.length <= 10000 0 <= input[i]<= 10000示例1输入:[4,5,1,6,2,7,3,8],4 返回值:[1,2,3,4]说明:返回最小的4个数即可,返回[1,3,2,4]也可以 学习了堆排序C++中 priority_que..

2021-09-02 19:58:37 47

原创 NC102 在二叉树中找到两个节点的最近公共祖先

描述给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1和o2,请找到 o1和o2的最近公共祖先节点。注:本题保证二叉树中每个节点的val值均不相同。示例1输入:[3,5,1,6,2,0,8,#,#,7,4],5,1返回值:3采用递归的做法函数DFS返回值为结果。如果o1与o2分别在root的左右子树,则root为答案。如果o1与o2都在root的左子树,则递归调用左子树。右子树也是如此。/** * struct TreeN...

2021-09-02 19:41:52 41

转载 NC3 链表中环的入口结点

描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。输入描述:输入分为2段,第一段是入环前的链表部分,第二段是链表环的部分,后台将这2个会组装成一个有环或者无环单链表返回值描述:返回链表的环的入口结点即可。而我们后台程序会打印这个节点示例1输入:{1,2},{3,4,5}复制返回值:3复制说明:返回环形链表入口节点,我们后台会打印该环形链表入口节点,即3 示例2输入:{1},{}复制返回值:"n

2021-08-26 20:16:31 103

原创 NC2 重排链表

描述将给定的单链表\ LL:L_0→L_1→…→L_{n-1}→L_ nL0​→L1​→…→Ln−1​→Ln​重新排序为:L_0→L_n →L_1→L_{n-1}→L_2→L_{n-2}→…L0​→Ln​→L1​→Ln−1​→L2​→Ln−2​→…要求使用原地算法,不能只改变节点内部的值,需要对实际的节点进行交换。示例1输入:{1,2,3,4}复制返回值:{1,4,2,3}复制说明:给定head链表1->2->3->4, 重新排列为 1...

2021-08-26 20:05:49 114

原创 NC1 大数加法

描述以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。(字符串长度不大于100000,保证字符串仅由'0'~'9'这10种字符组成)示例1输入:"1","99"复制返回值:"100"复制说明:1+99=100 class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字

2021-08-26 19:23:10 66

转载 python3 模块使用方法合集

Python3 collections模块使用详解 - 简书 (jianshu.com)

2021-08-06 16:03:20 69

原创 NC97 字符串出现次数的TopK问题

描述给定一个字符串数组,再给定整数k,请返回出现次数前k名的字符串和对应的次数。返回的答案应该按字符串出现频率由高到低排序。如果不同的字符串有相同出现频率,按字典序排序。对于两个字符串,大小关系取决于两个字符串从左到右第一个不同字符的 ASCII 值的大小关系。比如"ah1x"小于"ahb","231"<”32“字符仅包含数字和字母[要求]如果字符串数组长度为N,时间复杂度请达到O(N \log K)O(NlogK)示例1输入:["a","b","c"

2021-08-06 15:54:31 102

原创 NC91 最长递增子序列

描述给定数组arr,设长度为n,输出arr的最长递增子序列。(如果有多个答案,请输出其中 按数值(注:区别于按单个字符的ASCII码值)进行比较的 字典序最小的那个)示例1输入:[2,1,5,3,6,4,8,9,7]复制返回值:[1,3,4,8,9]复制示例2输入:[1,2,8,6,4]复制返回值:[1,2,4]复制说明:其最长递增子序列有3个,(1,2,8)、(1,2,6)、(1,2,4)其中第三个 按数值进行比较的字典序 最小,故答案

2021-08-04 17:29:57 418

原创 NC59 矩阵的最小路径和

描述给定一个n * m的矩阵a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。示例1输入:[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]复制返回值:12复制备注:1 \leq n,m \leq 20001≤n,m≤20001 \leq arr_{i,j} \leq 1001≤arri,j​≤100## # @param mat...

2021-08-02 17:50:58 116

原创 NC13 二叉树的最大深度

描述求给定二叉树的最大深度,最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。示例1输入:{1,2}复制返回值:2复制示例2输入:{1,2,3,4,#,#,5}复制返回值:3# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None#

2021-08-02 16:59:07 60

原创 NC109 岛屿数量

描述给一个01矩阵,1代表是陆地,0代表海洋,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。示例1输入:[[1,1,0,0,0],[0,1,0,1,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,1,1,1]]复制返回值:3复制备注:01矩阵范围<=200*200## 判断岛屿数量# @param grid char字符型二维数组 # @.

2021-08-02 16:36:47 117

原创 NC14 按之字形顺序打印二叉树

描述给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)例如:给定的二叉树是{1,2,3,#,#,4,5}该二叉树之字形层序遍历的结果是[[1],[3,2],[4,5]]示例1输入:{1,2,3,#,#,4,5}复制返回值:[[1],[3,2],[4,5]]复制示例2输入:{8,6,10,5,7,9,11}复制返回值:[[8],[10,6],[5,7,9,11]]复制示例3

2021-08-02 08:22:23 116

原创 NC136 输出二叉树的右视图

描述请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图示例1输入:[1,2,4,5,3],[4,2,5,1,3]复制返回值:[1,3,5]复制备注:二叉树每个节点的值在区间[1,10000]内,且保证每个节点的值互不相同。## 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可# 求二叉树的右视图# @param xianxu int整型一维数组 先序遍历# @param zhongxu int整型一维数组 中序

2021-08-01 14:55:38 60

原创 NC128 接雨水问题

描述给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个柱子高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例1输入:[3,1,2,5,2,4] 返回值:5 说明:数组 [3,1,2,5,2,4] 表示柱子高度图,在这种情况下,可以接 5个单位的雨水,蓝色的为雨水 示例2输入:[4,5,1,3,2]返回值:2 这道题的重点是,不能只看局部的低谷,要看整体的低谷。我一开始直接找山谷区进行加和,后来发现自己错了。有

2021-07-16 19:56:56 263 2

原创 NC121 字符串的排列

描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。示例1输入:"ab"返回值:["ab","ba"]深搜+list去重转set再转list会乱序# -*- coding:utf-8 -*-flag = []result = []def

2021-07-13 19:13:12 83

原创 NC17 最长回文子串

描述对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。给定字符串A以及它的长度n,请返回最长回文子串的长度。示例1输入:"abc1234321ab",12返回值:7用的中心扩散法# -*- coding:utf-8 -*-def PalindromeLen(left, right, str, n): while left >= 0 and right < n and str[left] == str[right]:

2021-07-13 18:45:54 68

原创 NC40 两个链表生成相加链表

描述假设链表中每一个节点的值都在 0 - 9之间,那么链表整体就可以代表一个整数。给定两个这种链表,请生成代表两个整数相加值的结果链表。例如:链表 1为 9->3->7,链表 2为 6->3,最后生成新的结果链表为 1->0->0->0。示例1输入:[9,3,7],[6,3]返回值:{1,0,0,0}备注:1≤n,m≤1061 \leq n, m \leq 10^61≤n,m≤1060≤ai,bi≤90 \leq a...

2021-07-09 20:07:50 104

原创 NC66 两个链表的第一个公共结点

描述输入两个无环的单链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)示例1输入:{1,2,3},{4,5},{6,7}返回值:{6,7}说明:第一个参数{1,2,3}代表是第一个链表非公共部分,第二个参数{4,5}代表是第二个链表非公共部分,最后的{6,7}表示的是2个链表的公共部分这3个参数最后在后台会组装成为2个两个无环的单链表,且是有公共节点的 我用set解决了。#

2021-07-09 19:41:06 107

原创 NC52 括号序列

描述给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。示例1输入:"["返回值:false示例2输入:"[]"返回值:true栈操作## # @param s string字符串 # @return bool布尔型#stack = []def match(c1 ,

2021-07-08 20:41:20 310

原创 NC14 二叉树的之字形层序遍历

描述给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)例如:给定的二叉树是{3,9,20,#,#,15,7},该二叉树之字形层序遍历的结果是[[3],[20,9],[15,7]]示例1输入:{1,#,2}返回值:[[1],[2]]深搜,python定义二维数组好麻烦# class TreeNode:# def __init__(self, x):# self.val.

2021-07-08 20:40:39 94

原创 NC41 最长无重复子数组

描述给定一个数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组示例1输入:[2,3,4,5]返回值:4说明:[2,3,4,5]是最长子数组 示例2输入:[2,2,3,4,3]返回值:3说明:[2,3,4]是最长子数组 示例3输入:[9]返回值:1示例

2021-07-08 20:13:52 154

原创 NC19 子数组的最大累加和问题

描述给定一个数组arr,返回子数组的最大累加和例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.题目保证没有全为负数的数据[要求]时间复杂度为O(n)O(n)O(n),空间复杂度为O(1)O(1)O(1)示例1输入:[1, -2, 3, 5, -2, 6, -1]返回值:12备注:1≤N≤1051 \leq N \leq 10^51≤N≤105∣arr

2021-07-06 18:07:57 121

原创 NC68 跳台阶

描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。示例1输入:2返回值:2示例2输入:7返回值:21菲波那契数列,直接递归跑居然超时,不得不用记忆化递归。python的字典跑记忆化递归还挺方便序号 函数及描述 1 dict.clear() 删除字典内所有元素 2 dict.copy() 返回一个字典的浅复制 3 dict.fr

2021-07-06 18:06:40 129

原创 NC33 合并有序链表

描述将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的,且合并后新链表依然有序。示例1输入:{1},{2}返回值:{1,2}示例2输入:{2},{1}返回值:{1,2}# class ListNode:# def __init__(self, x):# self.val = x# self.next = None## # @param l1 ListNode类

2021-07-06 17:17:22 152

原创 NC61 两数之和

描述给出一个整数数组,请在数组中找出两个加起来等于目标值的数,你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2.。注意:下标是从1开始的假设给出的数组中只存在唯一解例如:给出的数组为 {20, 70, 110, 150},目标值为90输出 index1=1, index2=2示例1输入:[3,2,4],6返回值:[2,3]说明:因为 2+4=6 ,而 2的下标为2 , 4的

2021-07-06 17:03:41 57

原创 NC88 寻找第K大

描述有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(1<=K<=n),请返回第K大的数(包括重复的元素,不用去重),保证答案存在。示例1输入:[1,3,5,2,2],5,3返回值:2示例2输入:[10,10,9,9,8,7,5,6,4,3,4,2],12,3返回值:9说明:去重后的第3大是8,但本题要求包含重复的元素,不用去重,所以输出9 复习快排,直接拿

2021-07-05 20:10:19 100

原创 NC45 二叉树先序、中序、后序遍历

描述分别按照二叉树先序,中序和后序打印所有的节点。示例1输入:{1,2,3}返回值:[[1,2,3],[2,1,3],[2,3,1]]备注:n≤106n \leq 10^6n≤106复习了一下树的遍历,简单的递归。发现Python3函数自调用不能放在class里,不知道是不是我的理解有问题。树的遍历:preOrder:根左右inOrder:左根右postOrder:左右根# class TreeNode:# def __ini.

2021-07-05 19:10:17 154

原创 NC78+NC93

NC78 反转列表描述输入一个链表,反转链表后,输出新链表的表头。示例1输入:{1,2,3}返回值:{3,2,1}是一道简单题,主要考察链表。class Solution: # 返回ListNode def ReverseList(self, pHead): # write code here if not pHead: return None root = None .

2021-07-01 20:42:50 79

原创 [Hit-SC-Lab2] 1.Poetic Walks

 http://web.mit.edu/6.031/www/sp17/psets/ps2/测试的编写,应该划分区块来仔细地写测试泛型的使用get√

2018-04-06 16:35:28 890

原创 [LeetCode] 14. Longest Common Prefix

简单题一次ACclass Solution { public String longestCommonPrefix(String[] strs) { if (strs.length == 0) return ""; String result = strs[0]; int length = strs.length,j,length_resul...

2018-04-05 11:07:29 84

原创 [LeetCode] 13. Roman to Integer

Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.class Solution { private int getThousands(String string){ return string.length()*1...

2018-03-30 15:25:16 88

原创 [LeetCode] 12. Integer to Roman

Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.枚举。。class Solution { private String getThousand(int thousands){ switch (thousands)...

2018-03-29 16:17:47 152

原创 [LeetCode] 11. Container With Most Water

Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two ...

2018-03-28 21:35:27 91

原创 [LeetCode] 9. Palindrome Number

简单题一次Aclass Solution { public boolean isPalindrome(int x) { String num = String.valueOf(x); String reverse_num = ""; int length = num.length(); for (int i = length-...

2018-03-27 19:57:32 93

原创 [LeetCode] 8.String to Integer (atoi)

一开始想用正则表达式做,后来发现不用正则表达式更简单;本题是简单模拟;题目大意就是给一个字符串,转化为int类型返回;字符串可能以空字符开头,然后加上‘+’/‘-’或者直接数字,如果数字大于Max_Int或小于Min_Int则返回Max_Int或Min_Int字符数字部分后可能有各种字符,忽略即可;若字符串全为空之类的,或格式错误无法解析,返回0;注意点:数字可能大到超过Long类型+-2返回的是...

2018-03-26 19:16:44 122

原创 [LeetCode] 7.Reverse Integer

有个小坑,输入X为Int类型返回时可能大于Int_Max,所以写的时候要先用Long来作为result,如果大于则返回0,否则强制类型转换后返回;class Solution{ public int reverse(int x) { int flag = 1; long result = 0; if (x &lt; 0) { ...

2018-03-25 17:00:49 90

空空如也

空空如也

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

TA关注的人

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