leetcode第一天
leetcode 第一天
2017年12月24日
第一次刷leetcode真的是好慢啊,三道题用了三个小时,而且都是简单题。
数组
1.(674)Longest Continuous Increasing Subsequence

JAVA
class Solution {
    public int findLengthOfLCIS(int[] nums) {
        int tem = 1 , length = 1;
        if(nums.length==0) return 0;
        for (int i = 0;i<nums.length -1;i++){
            if ( nums[i+1] - nums[i] > 0){
                tem ++;
                length = Math.max(tem,length);
            }else{
               tem = 1;
            }
        }
        return length;
    }
}
Python
class Solution(object):
    def findLengthOfLCIS(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        max_len = tem_len = 1
        if len(nums)==0:
            return 0
        for i in range(len(nums)-1):
            if nums[i+1] >nums [i]:
                tem_len += 1
                max_len = max(tem_len,max_len)
            else:
                tem_len = 1
        return max_len
2.(283)Move Zeroes

JAVA
class Solution {
    public void moveZeroes(int[] nums) {
        int pointer = 0;
        for (int i = 1; i<nums.length;i++){
            if(nums[i]-nums[pointer] == nums[i]){
                if(nums[i] != 0){
                    nums[pointer] = nums[i];
                    nums[i]=0;
                    pointer++;
                }
            }else pointer++;
        }
    }
}
Python
class Solution(object):
    def moveZeroes(self, nums):
        """
        :type nums: List[int]
        :rtype: void Do not return anything, modify nums in-place instead.
        """
        pointer = 0
        for i in range(len(nums)):
            if(nums[i]-nums[pointer] == nums[i]):
                if(nums[i]!=0):
                    nums[pointer] = nums[i]
                    nums[i] = 0
                    pointer +=1
            else:
                pointer+=1
3.(581)Shortest Unsorted Continuous Subarray

算法:1.先找到排序错误子集的起止点和终止点。2.计算该子集内的最大值最小值。3.判断前部分序列是否有大于子集最小值的部分,后部分序列是否有小于最大值的部分。如果有则修改子序列起始点终点
JAVA
class Solution {
    public int findUnsortedSubarray(int[] nums) {
        boolean isFirst = true;
        int left = 0,right = 0,min = Integer.MAX_VALUE,max=Integer.MIN_VALUE;
        for(int i = 0;i<nums.length-1;i++){
            if(nums[i+1] < nums[i]){
                if(isFirst){
                    left = i;
                    right = i+1;
                    isFirst = false;
                }else{
                    right = i+1;
                }
            }
        }
        for (int i = left;i<=right;i++){
            min = Math.min(min,nums[i]);
            max = Math.max(max,nums[i]);
        }
        for(int i=0;i <= left;i++){
            if(nums[i] > min){
                left = i;
            }
        }
        for(int i = nums.length-1 ; i>=right;i--){
            if(nums[i]<max){
                right = i;
            }
        }
        return right==0?0:right-left+1;
    }
}
leetcode第一天的更多相关文章
- Leetcode 第一遍刷完
		2014/10/15 Leetcode第一刷总算结束,时间拖太长了,希望第二遍能快一点,争取一个月能刷完第二遍??哈哈哈哈 
- leetcode第一题(easy)
		第一题:题目内容 Given an array of integers, return indices of the two numbers such that they add up to a sp ... 
- 有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。
		第一题 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数 ... 
- leetcode第一刷_Set Matrix Zeroes
		这个题乍一看非常easy,实际上还挺有技巧的.我最開始的想法是找一个特殊值标记.遇到一个0,把他所相应的行列中非零的元素标记成这个特殊值.0值保持不变,然后再从头遍历一次,碰到特殊值就转化成0. 问题 ... 
- leetcode第一刷_Permutations II
		当有反复元素的时候呢? 不用拍脑袋都会想到一种方法,也是全部有反复元素时的通用处理方法,维护一个set,假设这个元素没增加过就增加,增加过了的忽略掉.可是,在这道题上这个通用方法竟然超时了! 怎么办? ... 
- leetcode第一刷_Populating Next Right Pointers in Each Node II
		很自然的推广,假设去掉全然二叉树的条件呢?由于这个条件不是关键,因此不会影响整体的思路.做法依旧是每次找到一层的起点,然后一层一层的走. 假设是全然二叉树的话,每层的起点就是上一层起点的左孩子,兄弟之 ... 
- leetcode第一刷_Merge Intervals
		看到这个题我就伤心啊,去微软面试的时候,第一个面试官让我做的题目就是实现集合的交操作,这个集合中的元素就像这里的interval一样.是一段一段的.当时写的那叫一个慘不忍睹.最后果然被拒掉了. .好好 ... 
- leetcode第一刷_N-Queens
		八皇后问题应该是回溯法的教学典范.在本科的时候,有一门课叫面向对象.最后的附录有这个问题的源码.当时根本不懂编程,照抄下来,执行一下出了结果都非常开心,哎. 皇后们的限制条件是不能同行同列,也不能同对 ... 
- leetcode第一刷_Gray Code
		说到格雷码,应该没人不知道,详细它有什么用,我还真不是非常清楚,我室友应该是专家.生成的规律不是非常明显,之前看到帖子讲的,这会儿找找不到了.. 思想是这种,假设有n位,在第2^(n-1)个编码以下画 ... 
随机推荐
- HBuilder连接IOS手机打开APP测试
			HBuilder是专为前端打造的开发工具,具有最全的语法库和浏览器兼容数据,以方便制作手机APP,最保护眼睛的绿柔设计等优点在近几年盛行: 开发移动端APP项目想要在手机真机上测试: 首先打开HBui ... 
- Django 发送邮件
			问题: 对于一些错误信息或用户注册账号的时候,需要给用户发送邮件进行验证. 以用户注册发邮件为例子,用户向后端提起注册,后端收到用户邮箱,对邮箱格式进行验证,然后发送邮件,邮件内容中包括邮件标题.邮件 ... 
- 爬虫_url去重策略
			如何对url去重? 将访问url保存到数据库中,效率低,最简单 将url保存到set中,查询速度快,但当url达到1亿多条时候,占用太多内存空间 将url经过md5等方法哈希后保存到set中 用bit ... 
- junit源码解析--初始化阶段
			OK,我们接着上篇整理.上篇博客中已经列出的junit的几个核心的类,这里我们开始整理junit完整的生命周期. JUnit 的完整生命周期分为 3 个阶段:初始化阶段.运行阶段和结果捕捉阶段. 这篇 ... 
- ios 判断屏幕显示是@2x还是@3x来调用字体大小
			传统font大小适配可能会根据屏幕宽度与iphone5或iphone6宽度的一个比例来适配.但如果有这样一个需求,在显示@2x图片的手机上显示一种字体,在显示@3x图片的手机上显示另一个固定大小的字体 ... 
- 常用API
			1 System类 System类包含一些有用的类和字段.它不能被实例化. 属性和方法都是静态的. 1.1 常见方法 返回以毫秒为单位的当前时间 public static long currentT ... 
- 【转】Linux Oracle服务启动&停止脚本与开机自启动
			在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设置相关参数,首先先介 ... 
- Ready!Api创建使用DataSource和DataSourceLoop的循环测试用例
			step one:在testSuite(假如没有,新建一个)下新建一个testcase,并新建一个DataSource(注意:创建数据源时,一定要把request中所有的传参字段都放到数据源字段中&l ... 
- JSP与HTML及前后分离
			JSP是什么 首先要知道JSP的本质其实是个Servlet,index.jsp在访问的时候首先会自动将该页面翻译生一个index_jsp.java文件,即Servlet代码. 打开这个类你会发现这个类 ... 
- mysql安装(CentOS 7.1 (64-bit system)  MySQL 5.6.24)
			环境:CentOS 7.1 (64-bit system) MySQL 5.6.24yum install libaio //安装依赖的包wget http://dev.mysql.com/get/m ... 
