leetcode题解日练--2016.8.29

原创 2016年08月30日 11:11:31

###不给自己任何借口

今日题目:

1、数位相加;

2、最大子序列乘积

今日摘录:

据说那些你一笑就跟着你笑的人,不是傻逼就是爱你的人

——安东尼《给不二的情书》

258. Add Digits | Difficulty: Easy

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.

For example:

Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.

Follow up:
Could you do it without any loop/recursion in O(1) runtime?

tag:数学
题意:将一个非负整数,将所有数位相加直到只有一位

思路:模拟一遍很简单,不过题目希望能用O(1)的方法得到答案而非遍历。
1、

class Solution {
public:
    int addDigits(int num) {
        return 1 + (num - 1) % 9;
    }
};

结果:12ms

152. Maximum Product Subarray | Difficulty: Medium

Find the contiguous subarray within an array (containing at least one number) which has the largest product.

For example, given the array [2,3,-2,4],
the contiguous subarray [2,3] has the largest product = 6.

tag:数组|DP

题意:求一个数组中的最大连续子序列乘积
思路:
1、类似于连续最大子序列和的方法,但是需要保留一个最大一个最小,因为有正有负,如果碰到负数需要更改之前保留的最大与最小。

class Solution {
public:
    int maxProduct(vector<int>& nums) {
        int n=nums.size();
        if(n==0)    return 0;
        int res = nums[0];
        for(int i=1,imax = res,imin = res;i<n;i++)
        {
            if(nums[i]<0)   swap(imax,imin);
            imax = max(nums[i],nums[i]*imax);
            imin = min(nums[i],nums[i]*imin);
            res = max(res,imax);
        }
        return res;
    }
};

结果:8ms

版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode-分类题解

https://github.com/soulmachine/leetcode/raw/master/C%2B%2B/leetcode-cpp.pdf 原作者:戴方勤(soulmachine@gma...
  • skp127
  • skp127
  • 2016年07月03日 14:53
  • 1020

本博客LeetCode题解索引及各类算法问题小结汇总(C++实现)

Some explains: 1),The current problems have been solved:Welcome, EbowTang! You have solved 101 / 316...
  • EbowTang
  • EbowTang
  • 2016年02月15日 17:18
  • 5512

【LeetCode-面试算法经典-Java实现】【所有题目目录索引】

【博文总目录>>>】 LeetCode算法题典   LeetCode是一个准备面试非常有用的网站,是非常值得去的地方,里面都是一些经典的面试题,这些题目在Google,Microsof...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月16日 06:27
  • 24741

LeetCode题解整理版(一)

Evaluate Reverse Polish Notation 逆波兰表达式求值,经典问题。 遇到数字入栈,遇到符号取栈顶的两个出来运算,再将结果入栈,最后栈里剩下的一个元素就是结果了。 ...
  • xualaleilei
  • xualaleilei
  • 2016年04月04日 17:30
  • 442

算法:经典leetcode算法题解

1. Patching Array 补丁数组(考虑ing) 原题描述:https://leetcode.com/problems/patching-array/ 给定一个有序正整数数组nums以及...
  • ztf312
  • ztf312
  • 2016年03月30日 13:50
  • 969

Leetcode 经典题目题解

所列均为个人解答 所用语言Java 尽量都用最优解解答 原题出自Leetcode:https://leetcode.com/problemset/algorithms/ 仅供参考...
  • jwyyuana
  • jwyyuana
  • 2015年12月16日 05:46
  • 2893

JavaScript版leetcode源码(持续更新)小白第一次进行刷题

/** * * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = func...
  • zhoudeyou945
  • zhoudeyou945
  • 2016年12月01日 19:28
  • 787

leetcode-java题解(每天更新)

说明:选用java,重在体会,性能不是最优。欢迎转载:http://www.ming-yue.cn/leetcode-java-solutions/。 先给出一个leetcode的已有答案,为什么上...
  • minglaihan
  • minglaihan
  • 2015年03月09日 11:29
  • 1367

LeetCode题解汇总(C++ Java Python,含题目翻译)

LeetCode题目(含AC Rates):http://oj.leetcode.com/problems/ 我的github:https://github.com/lilong-dream/ 1 T...
  • dragon_dream
  • dragon_dream
  • 2014年02月23日 17:49
  • 34866

LeetCode算法题目解答汇总(转自四火的唠叨)

LeetCode算法题目解答汇总 本文转自《四火的唠叨》 只要不是特别忙或者特别不方便,最近一直保持着每天做几道算法题的规律,到后来随着难度的增加,每天做的题目越来越少。我的初衷就是练习,因为...
  • xiaokang123456kao
  • xiaokang123456kao
  • 2016年12月28日 11:21
  • 401
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode题解日练--2016.8.29
举报原因:
原因补充:

(最多只允许输入30个字)