zoukankan      html  css  js  c++  java
  • leetcode每日刷题计划-简单篇day9

    Num 38 报数 Count and Say

    题意读起来比较费劲。。看懂了题还是不难的

    注意最后的长度是sz的长度,开始写错写的len

    在下次计算的时候len要更新下

    说明

    直接让char和int进行转换的过程中,int a=1,转成char是ascii为1的一个东西,要a+48,如果是char b='1',这时候转换成a是49

    两者之间的转化完全是a的数值对应就是字符的ascii

    还有就是char数组可以直接赋值给string

    char a[100] ;string s=(a,0,len);len是长度哦,0是起始位置

    class Solution {
    public:
        string countAndSay(int n) {
            if(n==1) return "1";
            else if(n==2) return "11";
            else if(n==3) return "21";
            else if(n==4) return "1211";
            else if(n==5) return "111221";
            char a[10000];
            string s="111221";
            int len=s.length();
            int count=0;
            int sz=0;
            for(int i=6;i<=n;i++)
            {
                len=s.length();
                count=0;
                sz=0;
                char now=s[0];
                for(int j=0;j<len;j++)
                {
                    if(s[j]==now)
                    {
                        count++;
                    }
                    else
                    {
                        a[sz++]=count+48;
                        a[sz++]=now;
                        count=1;
                        now=s[j];
                    }
                }
                a[sz++]=count+48;
                a[sz++]=now;
                string ans(a,0,sz);
                s=ans;
            }
            return s;
          }
    };
    View Code

     Num 88 合并两个有序数组 Merge Sorted Array

    注意一下实际读取的时候是0-len-1,len赋值修改一下比较好

    然后,修改以后是大于等于0;while(len),if(len)这种判定条件都是大于0奥

    class Solution {
    public:
        void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
            int len=m+n-1;
            int lenn=n-1;
            int lenm=m-1;
            while(len>=0 && lenn>=0 && lenm>=0)
            {
                if(nums2[lenn]>nums1[lenm])
                    nums1[len--]=nums2[lenn--];
                else
                    nums1[len--]=nums1[lenm--];
            }
            while(lenn>=0)
                nums1[len--]=nums2[lenn--];
            while(lenm>=0)
                nums1[len--]=nums1[lenm--];
        }
    };
    View Code
    时间才能证明一切,选好了就尽力去做吧!
  • 相关阅读:
    检查使用的端口
    time is always agains us
    检查使用的端口
    dreque问题一例
    查看重定向的输出
    安装VSS时,Um.dat may be corrupt
    修改网卡ip
    redis install on ubuntu/debian
    上火了
    学这么多技术是为什么
  • 原文地址:https://www.cnblogs.com/tingxilin/p/10727400.html
Copyright © 2011-2022 走看看