zoukankan      html  css  js  c++  java
  • 日常编程练习(一)

    1、二维数组的查找

    问题:在一个二维数组中,每行都从左到右递增顺序,每一列都按从上到下递增,从这个二维数组查找一个数是否存在。

    int find_one(int a[][4],int N,int M,int value)
    {
        int i=M-1;
        int j=0;
        while(1)
        {
            if(a[j][i]==value)
                return value;
            else if(a[j][i]>value)
            {
                i--;
                if(i<0)
                    return 0;
            }
            else if(a[j][i]<value)
            {
                j++;
                if(j>=N)
                    return 0;
            }
        }
    }

    2、字符串替换空格

    问题:将字符串中的空格替换成"%20"

    //重新申请一个字符串
    string swap_empty1(string &str)
    {
        string new_str;
        for(auto &c:str)
        {
            if(c==' ')
                new_str+="%20";
            else
                new_str.push_back(c);
        }
        return new_str;
    }
    //原字符串上修改
    string swap_empty2(string &str)
    {
        int n_count=0;
        for(auto &c:str)
        {
            if(c==' ')
                n_count++;
        }
        int length=str.size();
        int new_length=length+n_count*2;
        str.resize(new_length);
        int i=length-1,j=new_length-1;
    
        while(i)
        {
            if(str[i]==' ')
            {
                j=j-2;
                str[j]='%';
                str[j+1]='2';
                str[j+2]='0';
                i--;
                j--;
            }
            else
            {
                str[j]=str[i];
                j--;i--;
            }
        }
        return str;
    }

    3、两个排序数组A,B,将B的所有数插入到A中且所有数是排序的

    vector<int> add_array(vector<int>arr1,vector<int>arr2)
    {
        int length1=arr1.size();
        int length2=arr2.size();
        int add_length=length1+length2;
        arr1.resize(add_length);
        int i=length1-1,j=length2-1,k=add_length-1;
        while(i!=0)
        {
            if(arr1[i]>arr2[j])
            {
                arr1[k]=arr1[i];
                i--;
                k--;
            }
            else
            {
                arr1[k]=arr2[j];
                j--;
                k--;
                if(j<0)
                    break;
            }
        }
        while(j>=0)
        {
            arr1[k]=arr2[j];
            j--;
            k--;
        }
        return arr1;
    }
  • 相关阅读:
    构建Linux根文件系统(未完待续)
    Bootloader的结构和启动过程
    linux文件属性介绍
    内核中设备树的操作函数
    Redis缓存之Set使用
    cookie的三种操作方法
    毕业一年(这个总结来的比较晚)
    MongoDb 聚合报错
    Asp.Net alert 方法
    JQuery拖拽排序
  • 原文地址:https://www.cnblogs.com/kiplove/p/6791893.html
Copyright © 2011-2022 走看看