zoukankan      html  css  js  c++  java
  • Day 1

    第一题:

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    (来源:力扣(LeetCode))

    1、一开始也只能想到这种双循环求解的方法,一开始写出来的代码没有截图。

      对指针开辟空间的语法不记得,后改正:int *result = (int *)malloc(sizeof(int)*2);

      题目要求方法最后返回数组下标,之前不知道怎么返回多个数组下标,在参考了几个题解之后,发现可以船舰一个新的数组(result)来接收所求得的数组下标,最终返回该数组。

       

      系统提供的数组参数是{2,7,11,15},target=9;

      运行上面的代码可以得出预期结果;

    2、Java中有Map<k,v>集合可存储键值对,键值对则正好对应了数组里面的数据和下标;

      先创建一个HashMap集合,泛型都为Integer;

      for循环,查看HashMap集合其中是否有和数组数据相同的键,若没有,则将(target-数组数据)和下标分别存入集合中;

      如果发现有键于数组数据相同,则将键对应的值和数组下标存入index数组中,将其返回;

            

    第二题:

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位数字。

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

    您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    (来源:力扣(LeetCode))

     1、定义链表元素:struct ListNode *p,*q;

      为链表元素分配内存空间:struct ListNode *r=(struct ListNode*)malloc(sizeof(struct ListNode));

      (15行)因为struct ListNode结构体内定义了next指针,所以当为指针分配了空间后需要将该指针的next指向NULL;

      

      用x,y来接收当前p,q指针所指向的数,用num接收x和y相加的值;

      由于两个非负数相加可能超过十,所以使用flag接收num/10作为进位的标志;

      再为r->next分配内存空间使r->val=num%10;

      当p,q指向的位置运算结束后,p和q都指向其next;

      最终循环结束,再次判断flag是否为0,不是则最高位有进位,需再为r->next分配空间是r->next->val=1;

      返回结果。

  • 相关阅读:
    Jenkins安装和初始化配置
    KVM环境下vCPU绑定到物理CPU
    关于自动化测试环境的集成(Jenkins+RobotFramework+TestLink+SVN)
    Linux下PPPoE Server测试环境搭建
    CentOS安装使用vnc进行远程桌面登录
    linux下PPTP Server测试环境搭建
    202020211 20209301《Linux内核原理与分析》第一周作业
    博弈论学习笔记(一)四个入门结论
    官宣!Amazon EMR正式支持Apache Hudi
    LessCss学习笔记 CCH
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13109500.html
Copyright © 2011-2022 走看看