- 博客(16)
- 资源 (5)
- 收藏
- 关注
原创 Python中yield的用法及其原理解释
Python中yield的用法在了解yield的作用前,我们得先了解generato和iterables1. Iterables创建列表时,我们可以一项一项地阅读其项目。一项一项地读取其项目称为迭代:>>> mylist = [1, 2, 3]>>> for i in mylist:... print(i)123mylist是一个可迭代的。当我们使用列表推导式时,将创建一个列表,以及一个可迭代对象:>>> mylist =
2021-11-01 19:15:18 254
原创 丢失的第一个正整数-lintcode
丢失的第一个正整数问题描述给出一个无序的整数数组,找出其中没有出现的最小正整数。样例样例1:输入:[1,2,0]输出:3样例2:输入:[3,4,-1,1]输出:2大致思路类似于幼儿园排位置,把对应的数字排入对应的位置,之后在从头遍历一遍数组,便可知道第一个丢失的正整数Java代码public class Solution { /** * @param A: An array of integers * @return: An integer
2020-08-13 11:58:23 137
原创 加油站—lintcode
加油站问题描述在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,则返回-1。!数据保证答案唯一!样例样例 1:输入:gas[i]=[1,1,3,1],cost[i]=[2,2,1,1]输出:2样例2 :输入:gas[i]=[1,1,3,1],co
2020-08-13 11:51:43 133
原创 最多有多少个点在一条线上
最多有多少个点在一条线上问题描述 给出二维平面上的n个点,求最多有多少点在同一条直线上。样例样例1:输入:(1,2),(3,6),(0,0),(1,3).输出:3样例2输入:(1,2),(2,3),(3,2).输出:2大致思想:使用一个Map来存放已经出现过的斜率,要注意相同的点,分母为0的点,这里采用字符串的方式来记录斜率,可以有效规避分母为0的情况,比如“5_2”代表斜率为5/2Java代码/** * Definition for a point. * clas
2020-08-13 11:44:51 247
原创 落单的数 II
落单的数 II给出3*n + 1 个非负整数,除其中一个数字之外其他每个数字均出现三次,找到这个数字。(挑战:一次遍历,常数级的额外空间复杂度)样例样例1输入: [1,1,2,3,3,3,2,2,4,1]输出: 4样例2输入: [2,1,2,2]输出: 1Java代码及思想本题其实和2n+1个数的情况是差不多的,只不过那时是逢2进位,现在是要逢3进位,我们可以采用两个变量one two分别代表低位和高位,当出现一次时one为1,two为0,两次时two 为 1,one
2020-06-05 18:00:23 112
原创 最小子串覆盖(Minimum Window Substring)
描述给定两个字符串 source 和 target. 求 source 中最短的包含 target 中每一个字符的子串,顺序不要求相同。如果没有答案, 返回 "".保证答案是唯一的.target 可能包含重复的字符, 而你的答案需要包含至少相同数量的该字符.样例样例 1:输入: source = "abc", target = "ac"输出: "abc"样例2输入: source = "adobecodebanc", target = "abc"输出: "banc"解释: "ba
2020-06-03 10:12:17 442 1
原创 搜索二维矩阵 II
问题描述写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:·每行中的整数从左到右是排序的。·每一列的整数从上到下是排序的。·在每一行或每一列中没有重复的整数。要求O(m+n) 时间复杂度和O(1) 额外空间样例样例1:输入:[[3,4]]target=3输出:1样例2输入: [ [1, 3, 5, 7], [2, 4, 7, 8], [3, 5, 9, 10] ] target =
2020-05-27 16:18:04 104
原创 子集问题(SubSet)
问题描述给定一个含不同整数的集合,返回其所有的子集。样例样例1输入:[0]输出:[ [], [0]]样例2输入:[1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]挑战采用递归和非递归两种方式求解代码下列代码包括递归和非递归两种解法import org.omg.PortableInterceptor.SUCCESSFUL;import java.util.A
2020-05-26 11:46:48 333
原创 交叉字符串
描述给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。样例样例 1:输入:"aabcc""dbbca""aadbbcbcac"输出:true样例2:输入:"""""1"输出:false样例3:输入:"aabcc""dbbca""aadbbbaccc"输出:false代码这道题其实就是一道很基础的动态规划问题:public class Solution { /** * @param s1: A string
2020-05-25 22:20:50 132
原创 全排列
全排列描述给定一个数字列表,返回其所有可能的排列。样例样例1输入:[1]输出:[ [1]]样例2输入:[1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]代码递归解法public class Solution { /* * @param nums: A list of integers. * @return: A list of permu
2020-05-25 19:53:57 79
原创 二叉树的序列化和反序列化
二叉树的序列化和反序列化问题描述设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。 如何反序列化或序列 化二叉树是没有限制的,你只需要确保可以将二叉树序列化为一个字符串,并且 可以将字符串反序列化为原来的树结构。样例样例1输入:{3,9,20,#,#,15,7}输出:{3,9,20,#,#,15,7}解释:二叉树 {3,9,20,#,#,15,7},表示如下的树结构: 3 / \ 9
2020-05-24 20:38:32 94
原创 寻找无序数组中的第k大元素
描述寻找无序数组中的第k大元素样例样例1:输入:n = 1, nums = [1,3,4,2]输出:4样例2:输入:n = 3, nums = [9,3,2,4,8]输出:4挑战要求时间复杂度为O(n),空间复杂度为O(1)。代码可以参考排序的实现方式public class K_th_Element { /** * @param n: An integer * @param nums: An array * @return: th
2020-05-22 15:27:31 163
原创 Excel表列标题
Excel表列标题问题描述样例代码问题描述给定一个正整数,返回相应的列标题,如Excel表中所示。样例样例1输入: 28输出: "AB"样例2输入: 29输出: "AC"注意事项1 -> A2 -> B3 -> C ...26 -> Z27 -> AA28 -> AB 代码public class Solution { /** * @param n: a integer * @return: retu
2020-05-20 11:39:40 354
原创 停车困境(Parking Dilemma)
问题描述停车场里停着许多汽车。 停车位是一条很长的直线,每米都有一个停车位。 当前很多汽车停放,您想通过建造屋顶来遮雨挡雨。 要求至少有k辆车的车顶被车顶遮盖,要覆盖k辆车的车顶的最小长度是多少?该函数具有以下参数:cars:长度的整数数组,表示停放汽车的停车位k:整数,表示必须被车顶遮盖的汽车数量样例示例:输入:cars: [2, 10, 8, 17]k: 3输出: 9解释:您可以建立长度为9的屋顶,覆盖从第2个到第10个的所有停车位,因此在第2、10、8个位置覆盖3辆车,没有较
2020-05-19 10:23:58 896
原创 删除字符
题目描述给定一个字符串,要求去掉一个字符,使得剩下的两个字符串按顺序拼接在一起,使得最后得到的字符串字典序最小。返回这个字符串。样例样例1输入:“acd”输出:“ac”解释:"ac"是字典序最小的样例2输入:“ozwdtvxuhx”输出:“owdtvxuhx”注意事项保证字符串长度大于1且小于100000#代码public class Solution { /** * @param str: the str * @return: the delete
2020-05-18 21:20:13 142
原创 翻转游戏(Flip_Game)
翻转游戏——Flip Game问题描述样例代码问题描述翻转游戏:给定一个只包含两种字符的字符串:+和-。你可以将两个连续的“++”翻转成"–",你需要翻转一次,并找到翻转后所有可能得到的结果。编写一个程序,找到字符串在一次有效翻转后的所有可能状态。样例样例1输入: s = “++++”输出:[“–++”,“±-+”,“+±-”]样例2输入: s = “—++±++±+”输出:[“—++±±–+”,“—++±–±+”,“—±–++±+”,“-----±++±+”]
2020-05-18 20:46:51 1226
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人