精华内容
下载资源
问答
  • leecode-easy-addbinary
    2017-11-17 15:36:04

    构造一个二进制加减函数。从后一位相加,一直加到最后,同时注意的几点。

    1,进位也需要算,因此二进制函数是三个参数

    2,最后要检验进位是否为0.当进位为1时,要考虑。

    class Solution:
        def addBinary(self, a, b):
            """
            :type a: str
            :type b: str
            :rtype: str
            """
            s=[]      #每次得到结果存放
            z =0     #进位
            b1 = min(len(a),len(b))    #长度,待会循环会用
            for i in range(b1):   #b1--0 1 2 3 4   #加一个
                c = self.add(a[-1-i],b[-1-i],z)
                z = c[0]
                s.append(c[1])
            b2 = max(len(a),len(b))
            for i in range(b1,b2,1):   #b2 5 6 7 8   #剩下的
                if len(a)==b2:
                    c = self.add(a[-i-1],0,z)
                    z =c[0]
                    s.append(c[1])
                elif len(b)==b2:
                    c = self.add(0,b[-1-i],z)
                    z = c[0]
                    s.append(c[1])
                else:
                    print('error1')
            if z ==1:                            #检查进位是否为1
                s.append(z)
            res =[]
            for i in range(len(s)):            #翻转
                res.append(str(s[-i-1]))
            
            result = ''.join(res)
            return result
                    
                
        def add(self,x,y,z):         #二进制加法,返回【进位,数】
            'x,y,z int'
            c = int(x)+int(y)+int(z)
            if c==0:
                return [0,0]
            if c ==1:
                return [0,1]
            if c ==2:
                return [1,0]
            if c ==3:
                return [1,1]
            else:
                print('error2')
            
             
    c = Solution()
    a = "1"
    b = '1'
    z = c.addBinary(a,b)
    print(z)


    更多相关内容
  • 【leetcode学习笔记】leecode什么

    万次阅读 2016-08-27 21:04:19
    在csdn上看到leecode是第二次了,之前一直不知道是什么?今天在学习linux系统如何将文本登录界面转换为图像登录界面的时候(出现了运行startx后,ubuntu密码正确也进不去系统的问题,进入了无限的循环登录中,没办法...

    在csdn上看到leecode是第二次了,之前一直不知道是什么?今天在学习linux系统如何将文本登录界面转换为图像登录界面的时候(出现了运行startx后,ubuntu密码正确也进不去系统的问题,进入了无限的循环登录中,没办法只有通过guest用户搜集解决方法,拍照参照测试,最终找到了解决方法:(运行startx后ubuntu密码正确进不去的问题。),在博主的博文目录里看到了leecode,搜集了这厮到底是什么?如下:

    leetcode 是一个美国的在线编程网站,上面主要收集了各大IT公司的笔试面试题,对于应届毕业生找工作是一个不可多得的好帮手。

    这个网站的的好处在于它会告诉你测试数据以及你的输出和正确的输出是什么,方便大家调试学习。目前,只支持C++和Java两种语言(现在支持了更多的语言)。

    另外它是支持在线编辑,还提供了一个在线运行环境,可以直接看到运行结果。

    另一个很好的地方在于提供了2个独立的代码窗口,分别编译运行。一个自己玩的开发窗口,一个提交代码的窗口,可以在第一个窗口里测试各种拿不准的功能点。

    官方网站:http://leetcode.com/

    自己看了一下确实是非常不错的练习和锻炼自己编程能力的网站,也是锻炼自己以后找工作的能力,自己看了下最简单的题,感觉解决问题的思路是懂得,但是编程的细节还是需要查阅相关的资料,这也是自己需要锻炼的基本功。自己找到了比较简单的一个题:

    自己的答案:

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target) 
        {
            vector<int> twonum;
            //把数输入到数组
            int num;
            while(cin>num)
            {
                nums.push_back(num);
            }
            //输入和
            cin>target;
            for(int i=0;i<nums.size();i++)
            for(int j=0;j<nums.size();j++)
            {
                if(nums[i]+nums[j]==target)
                twonum.push_back(i);
                twonum.push_back(j);
                
            }
            return twonum;
            
        }
    };

    由于网站说邮箱没有验证,不知道准确性 ,先打算自己在VS上测试一下效果。后面会贴出实验结果。

    关于vector数组的用法参考: http://bbs.csdn.net/topics/310022968

    另外补充的点:C++具有string类,以前自己因为记得没有,在此更正一下。

    leecode相关的资料:

    暂时刷完leetcode的小体会

    天码营网站-》经验-》leetcode(包含求解过程和注释)

    leetcode题解




    展开全文
  • Leecode 61

    2019-06-03 12:00:26
    题目 给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。 示例1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->...向右旋转 2 步: 4-...

    题目

    给定一个链表,旋转链表,将链表每个节点向右移动 个位置,其中 是非负数。

    示例 1:

    输入: 1->2->3->4->5->NULL, k = 2
    输出: 4->5->1->2->3->NULL
    解释:
    向右旋转 1 步: 5->1->2->3->4->NULL
    向右旋转 2 步: 4->5->1->2->3->NULL

    示例 2:

    输入: 0->1->2->NULL, k = 4
    输出: 2->0->1->NULL
    解释:
    向右旋转 1 步: 2->0->1->NULL
    向右旋转 2 步: 1->2->0->NULL
    向右旋转 3 步: 0->1->2->NULL
    向右旋转 4 步: 2->0->1->NULL

    思路

    把链表转换成循环的链,在进行求解
    计算链表长度 L,则 迭代 L - k % L 次就是新的链表头

    class Solution {
        public ListNode rotateRight(ListNode head, int k) {
            if(head == null) {
                    return null;
                }
                ListNode cur = head;
                int n = 1;
                //得到链表的长度
                while(cur.next != null){
                    n++;
                    cur = cur.next;
                }
                //行成循环链表
                cur.next = head;
                int m = n - k % n;
                //到达新链表头节点的前一个节点
                for(int i = 0; i < m; i++){
                    cur = cur.next;
                }
                ListNode newHead = cur.next;
                cur.next = null;
                return newHead;
        }
    }

    展开全文
  • Leecode基础题的实验,加验证,加实现
  • LeeCode leecode questions' answers start to learn coding and a record of finishing leecode questions copy from leecode user noone_ 刷题顺序很重要吗? 重要。按照题目类别结构化地刷题的速度不仅更快,而且...
  • 【前言】坚持日更LeeCode刷题系列    不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!   【题目】88.合并两个有序数组    题目描述:给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 ...
  • 本资料为博客中对应的Leecode中初级算法的数组题代码,编程语言为java
  • 【前言】坚持日更LeeCode刷题系列    不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!   【题目】136.只出现一次的数字    题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每...
  • Leecode2021

    2021-03-08 08:11:11
    Leecode2021
  • leecode常见代码收集

    2022-03-21 07:11:35
    leecode常见代码收集
  • leecode leecode练习
  • 【前言】坚持日更LeeCode刷题系列    不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!   【题目】9.回文数    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是...
  • 题目要求:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], 输出: [ [“ate”,“eat”,“tea”], ...
  • 推前LeeCode_example 参考 1. 二和 给定一个整数数组,返回两个数字的索引,使它们相加为特定目标。 您可以假设每个输入都只有一个解决方案,并且您不能两次使用相同的元素。 示例:给定 nums = [2, 7, 11, 15], ...
  • 【前言】坚持日更LeeCode刷题系列    不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!   【题目】27.移除元素    题目描述:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于val 的...
  • 利码 如果您想成为一名优秀的程序员,请总结我在leecode方面的经验,有必要多做一些练习!
  • Leecode_everyday

    2021-03-08 21:33:26
    Leecode_每天
  • 算法:leecode

    2021-03-04 09:43:32
    刷题之路 2021-03-03 2021-03-03
  • leetcode中国 awesome-java-leetcode 我如今是一名 Android Developer,大学的我曾是一名 ACMer,我一直认为数据结构和算法是作为一名程序员必须掌握和善于利用的,为了不让数据结构和算法淡出我的记忆,所以我打算...
  • leecode算法思路详解

    2022-05-23 17:33:58
    适合刷算法的人看,多思路
  • leetcode 1004 继续思考,继续生活 直到 2019-03-07 12:29:05,我已经解决了0 / 953问题,而140仍然被锁定。 完成统计: JavaScript:0 Python:0 C++:0 Java:0 笔记: :locked: 意味着你需要从 ...去做
  • leecode刷题的时候经常看到用到哈希表的官方题解中都是直接调用UThash,可以用来检测是否有重复元素出现。这其实是一个在GitHub上开源的非常优秀的对哈希表的实现。 下载地址:...

    在leecode刷题的时候经常看到用到哈希表的官方题解中都是直接调用UThash,可以用来检测是否有重复元素出现。这其实是一个在GitHub上开源的非常优秀的对哈希表的实现。
    下载地址:https://github.com/troydhanson/uthash
    下载下来是一个压缩包,里面只有一个文件夹uthash-master,随便解压缩到一个能找到的地方。打开它,打开里面的src文件夹然后把这个路径复制下来。
    在这里插入图片描述
    我这里复制出来的路径就是C:\Users\11543\Desktop\CS\uthash-master\src
    之后打开VS2010(其他版本也类似)新建项目之后找到“项目-属性”

    在这里插入图片描述
    在打开的页面里点击“配置属性——VC++目录——包含目录——右边的小三角——编辑”

    在这里插入图片描述
    在新打开的页面里点击“新行”,然后把刚刚复制的路径粘贴进输入框中,点击右下角确定就ok了。(或者在输入框右边有三个点,点开那个然后就在里面定位到uthash-master——src目录中点击选择文件夹。)

    在这里插入图片描述
    这样就算配置完成了,在代码中直接输入include“uthash.h”就可以使用了。(这里我的代码是“217.寻找重复元素”中官方题解的代码)

    在这里插入图片描述
    下面是最最基本的用法。
    完整用法可以参考

    1. 官方英文使用文档:http://troydhanson.github.io/uthash/userguide.html#_add_item
    2. 一篇对这个文档的翻译博客https://blog.csdn.net/fan_h_l/article/details/107241520

    或者找其他写的比较好的博客学习

    就对应着上面的那段代码来简单说一下用法

    首先需要创建一个结构体

    struct hashTable {
        int key;
        UT_hash_handle hh;
    };
    

    UT_hash_handle hh;
    这行代码是用来表明这个结构体是一个哈希表类型,照抄就可以。
    key就是你想存储的数据,什么类型都可以(只是我目前只用过int类型)。
    另外在使用时必须先定义一个该结构体的空指针,用于指向保存数据的hash表(官方文档原文,没看懂)。一定要置为空,名字随便起,后面有用。

    struct hashTable* set = NULL;
    

    查找:

    struct hashTable* tmp = NULL;
    HASH_FIND_INT(set, nums + i, tmp);
    

    HASH_FIND_INT();

    • 第一个参数就是最开始让定义的那个空白指针。
    • 第二个参数是你要查找的key值(注意是指针类型,这里的nums是个数组,本来就是地址,如果要查一个int类型的数记得前面加“&”取地址)。
    • 第三个参数是如果找到的话就存在第三个参数里面,所以新建了一个指针作为容器(找不到就不给tmp赋值)。

    插入:

    tmp = (struct hashTable*)malloc(sizeof(struct hashTable));
    tmp->key = nums[i];
    HASH_ADD_INT(set, key, tmp);
    

    HASH_ADD_INT();

    • 第一个参数还是开头那个空白指针
    • 第二个参数是结构体中对应的成员名称(结构体中定义的是int key;如果定义int key1;这里就填key1)
    • 第三个参数是要插入的数据,已经提前放在结构体里面了。

    注意,必须先确保哈希表里没有相同元素才能插入,UThash不会替你完成这件事。也就是说你必须先用查找功能保证没有了才能插入(这也是正常使用中要自定义函数接口的意义)。

    这道题中就只用到了这两个功能,就先只介绍这两个功能。

    展开全文
  • Leecode-Solutions:利码

    2021-03-21 05:10:13
    介绍 这本gitbook存在的原因是,我想在CS /中获得一份与CS相关的工作
  • 【前言】坚持日更LeeCode刷题系列    不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!   【题目】7.整数反转    题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转...
  • leecode

    千次阅读 2020-06-28 23:52:12
    代码: class Solution { /** * @param Integer[] $height * @return Integer */ function maxArea($height) { $len = count($height); $indexLen = $len - 1; $maxContainer = 0;...$i &l..
  • 第一个部分是 leetcode 经典题目的解析,包括思路,关键点和具体的代码实现。第二部分是对于数据结构与算法的总结。第三部分是 anki 卡片, 将 leetcode 题目按照一定的方式记录在 anki 中,方便大家记忆。...
  • 【前言】坚持日更LeeCode刷题系列    不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!   【题目】20.有效的括号    题目描述:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串...
  • 【前言】坚持日更LeeCode刷题系列    不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!   【题目】58.最后一个单词的长度    题目描述:给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其...
  • 【前言】坚持日更LeeCode刷题系列    不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!   【题目】67.二进制求和    题目描述:给定两个二进制字符串,返回他们的和(用二进制表示)。    输入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,593
精华内容 9,037
关键字:

leecode是什么