• leetcode-6-basic


    解题思路:

    这道题真实地反映了我今晚有多脑残=。=只需要从根号N开始向前找,第一个能被N整除的数就是width,然后存到结果就

    可以了。因为离根号N越近,width越大,与length的差越小。

    vector<int> constructRectangle(int area) {
            vector<int> result;
            int i;
            //float min = 0.1;
            int length,width;
            int start = pow(area, 0.5);
            for (i = start; i >= 1; i--) {
                if (area % i == 0) {
                    width = i;
                    length = area / i;
                    break;
                }
            }
            result.push_back(length);
            result.push_back(width);
            return result;
        } 

    解题思路:这道题要求运行时间为O(n)且不能有额外的空间,有点意思。不过题目限定数组里都是正整数,且刚好在[1,size]

    的范围内,所以考虑用负号做区分。从头开始扫描,将nums[nums[i]-1]的值设为负数,那么等扫描过一遍之后,

    仍然是正数的index再加1就是缺失的数了。需要注意的是,设负数后,index会有负数,所以应该是将nums[abs(nums[i]) - 1]

    设为负数。

    vector<int> findDisappearedNumbers(vector<int>& nums) {
            vector<int> result;
            int i;
            for (i = 0; i < nums.size(); i++) {
                if (nums[abs(nums[i])-1] > 0)
                    nums[abs(nums[i])-1] *= -1;
            }
            for (i = 0; i < nums.size(); i++) {
                if (nums[i] > 0)
                    result.push_back(i+1);
            }
            return result;
        }

  • 相关阅读:
    ole辅助类sqlhelperaccess
    Asp.net中常用的26个性能优化方法
    MVP模式的相关知识
    ASP.NET AJAX入门系列
    非常实用]Asp.net常用的51个代码
    一步一步学Silverlight 系列文章
    .NET设计模式系列文章
    Asp.net添加上传进度条
    asp.net 用ajax实现文件上传
    增加弹出层的拖拽功能
  • 原文地址:https://www.cnblogs.com/pxy7896/p/6512436.html
Copyright © 2020-2023  润新知