zoukankan      html  css  js  c++  java
  • C day 1


    2019-04-01     11:36:16   

    *数组长度计算
    int num[] = { 15,55,26,77,56 };
    int len = sizeof(num) / sizeof(int);
        //sizeof(num)是计算整体数组的大小(以字节为单位)
        //sizeof(int)是计算一个int数据的大小(以字节为单位)
        /*
        好处:避免人工计算出错
        坏处:出错无法察觉
        */
    *数组传参
    #include "stdio.h"
    #include "stdlib.h"
    
    int twosum(int num[]) {
        int i, j;
        i = sizeof(num);
        j = sizeof(int);
        int len = sizeof(num) / sizeof(int);
        printf("num 的大小:%d
    ", i);
        printf("一个int 的大小:%d
    ", j);
        printf("数组的长度:%d
    ", len);
        return len;
    }
    int main() {
        int target = 9;
        int num[] = { 15,55,26,77,56 };
        twosum(num);
        printf("-------------
    ");
        int i, j;
        i = sizeof(num);
        j = sizeof(int);
        int len = sizeof(num) / sizeof(int);
        printf("num 的大小:%d
    ", i);
        printf("一个int 的大小:%d
    ", j);
        printf("数组的长度:%d
    ", len);
        system("pause");
        return 0;
    }

    结果:

    出错原因:数组传递的是首地址地址,但是参数到了函数内就成了普通地址,不再是首地址。所以sizeof计算的是指针的大小。

    *leetcode 

    Given an array of integers, return indices of the two numbers such that they add up to a specific target.

    You may assume that each input would have exactly one solution, and you may not use the same element twice.

    Example:

    Given nums = [2, 7, 11, 15], target = 9,
    
    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].

    int* twoSum(int* nums, int numsSize, int target) {
        int *a = (int*)malloc(2 * sizeof(int));//之前没有想到,
        int sum = 0;//前面的 (int *)是强制转换,后面的malloc(sizeof(int)); 是在内存中创建一个连续长度为2*sizeof(int)的区间之后再返回该区间的首地址给int * a
        for (int i = 0; i < numsSize - 1; i++)
        {
            for (int j = i + 1; j < numsSize; j++) {
                sum = nums[i] + nums[j];
                if (sum == target)
                {
                    a[0] = i;
                    a[1] = j;
                }
            }
        }
        return a;
    }

    常规解法就是穷举,所有数相加,然后进行判断。

     
  • 相关阅读:
    HDFS升级域:Upgrade Domain
    HDFS升级域:Upgrade Domain
    HDFS数据快速拷贝方案:FastCopy
    HDFS数据快速拷贝方案:FastCopy
    Confluence 6 SQL Server 测试你的数据库连接
    Confluence 6 SQL Server 输入你的数据库细节
    Confluence 6 SQL Server 创建一个数据库和数据库用户
    Confluence 6 安装 SQL Server
    Confluence 6 Microsoft SQL Server 设置准备
    Confluence 6 Oracle 连接问题解决
  • 原文地址:https://www.cnblogs.com/sece/p/10635481.html
Copyright © 2011-2022 走看看