zoukankan      html  css  js  c++  java
  • LeetCode1——两数之和

      最近在家拧三阶魔方,把初级的玩法掌握了,也就是可以还原六个面了,速度不快,但是也很兴奋。三阶魔方的初级玩法按照套路拧就可以了,每一步需要完成的任务,该步骤转动的方法基本都是固定的,而且变化也并不是特别多。只要按照套路多练习,不考虑速度的情况下还原一个三阶魔方还是很容易的。

      编程入门和还原魔方其实差不多,最初也是掌握套路后反复的练习,先从一个生手变成一个熟手,然后再去提高。分享一个段子,在知乎上看到的,如下:

      陈康肃公尧咨善射,当世无双,公亦以此自矜。尝射于家圃,有卖油翁释担而立,睨之,久而不去。见其发矢十中八九,但微颔之。
      康肃问曰:“汝亦知射乎?吾射不亦精乎?”翁曰:“无他,但手熟尔。”康肃忿然曰:“尔安敢轻吾射!”翁曰:“以我酌油知之。”乃取一葫芦置于地,以钱覆其口,徐以杓酌油沥之,自钱孔入,而钱不湿。因曰:“我亦无他,惟手熟尔。”康肃笑而遣之。 
     
     
    LeetCode 题库的第一题——两数之和
      我先找了一些简单而又比较好完成的题去完成,而且一定要是自己独立完成,且直接在 LC 上写代码,不去开发环境中写代码调试,这样才有提高。题目如下图,直接从网站上把图截取过来的。
     

     

    解题答案

      我的解题答案是用 C 语言完成的,代码如下:

     1 /**
     2  * Note: The returned array must be malloced, assume caller calls free().
     3  */
     4 int* twoSum(int* nums, int numsSize, int target) {
     5     int i, j;
     6     int *pArr = NULL;
     7     
     8     for ( i = 0; i < numsSize; i ++ ) {
     9         for ( j = i + 1; j < numsSize; j ++  ) {
    10             if ( nums[i] + nums[j] == target ) {
    11                 goto EXIT;
    12             }
    13         }
    14     }
    15 EXIT:
    16     
    17     if ( i < numsSize && j < numsSize ) {
    18         pArr = (int*)malloc(2 * sizeof(int));
    19         pArr[0] = i;
    20         pArr[1] = j;
    21     } 
    22     
    23     return pArr;
    24 }

     

      函数的原型是LeetCode已经定义好的,最上面的注释也是LeetCode中的,代码的思路也比较简单,两层循环来进行逐个的进行 加法 运算,计算获得 target 值之后用 goto 直接跳出两层循环( C 语言不建议使用 goto 语句,但是并没有说不允许使用,直接结构清楚,goto 用来跳出多层嵌套是很方便的),然后通过 堆空间 来把数组的两个下标返回,类似的很多题都是通过堆空间来返回值的。

     

      把自己的答案分享在这里,献丑了,也许哪个大牛指点一下还会提高一下。

     


     

    我的微信公众号:“码农UP2U”

  • 相关阅读:
    WCF获取客户端IP,端口
    关闭应用程序(主程序)(WPF)
    WPF中自定义漂亮的进度条
    使用Silverlight4与Wcf4的Net.tcp实现的简单聊天室
    NET使用Js调用WebService
    [转]IBM服务器系列产品分类指南
    [转]delphi 变参函数:array of const
    [转]合并BPL包图文教程!
    [转]ABAP流程处理控制命令的说明
    [转]QR代码(Quick Response Code)简介
  • 原文地址:https://www.cnblogs.com/tosser/p/9383986.html
Copyright © 2011-2022 走看看