精华内容
下载资源
问答
  • LintCode 介绍

    千次阅读 2021-01-31 20:27:03
    作为一名代码小白,有幸来到CSDN进行学习,同时也是很幸运地被介绍了LintCode并且在其中练习各类算法题目,我将在CSDN中分享在LintCode中的经历,希望有大佬多带带我! LintCode网站概括 LintCode是一个集合了大量...

    第一次在CSDN上发布文章

    作为一名代码小白,有幸来到CSDN进行学习,同时也是很幸运地被介绍了LintCode并且在其中练习各类算法题目,我将在CSDN中分享在LintCode中的经历,希望有大佬多带带我!

    LintCode网站概括

    LintCode是一个集合了大量算法面试题和AI面试题的网站,它为全世界的码农提供了练习自我技能的良好平台,注册是免费的,并且会在注册或关注公众号绑定微信后赠送用户7天VIP【开放全部试题,还可以查看他人代码】。

    试题概况

    在LintCode中,新人VIP可以查看的题目包括1740道算法题目和19道AI题目。当然全部试题不止这么些,根据试题编号来看,该站至少收录了1928道试题。

    试题分为入门、简单、中等、困难、超难5个级别,内容也是非常丰富,最后两个级别适合在吃饱喝足并且对自己技能有足够自信这挑战,因为这是真的真的真的造火箭试题。

    除了在题库中直接找题目之外,还可以根据该网站提供的阶梯训练进行练习。阶梯训练板块收纳了中美等不同公司的面试真题并以关卡的形式呈现给挑战者,其缺点就是大多数试题需要密码访问。

    部分阶梯训练图

    语言类型

    经过简单的浏览之后,我发现其中的题目绝大多数都是支持C++、Java、Python(分为Python2与Python3)、Go、JS这些比较常用、主流的语言的,当然除此之外还有少数题目包括了MySQL5.7之类的语言。

    CAT

    CAT(Coding Ability Test)是由 LintCode 发起的编程能力测试,参与者通过完成对编程题目的挑战,享受编程乐趣之余更可获得独一无二的证书以证明自己的编程及算法能力。立即报名开启编程挑战之旅,一起向着更高的目标进发吧!

    每个级别的挑战都包含一定数量的编程问题,除了来自公开、阶梯训练以及比赛的题目,您还将有机会接触到 CAT 专有的编程问题。

    通过的题目数量达到当前级别的挑战要求后即可通过挑战获得本级别的证书,下一级别的挑战也将解锁。

    挑战题目根据不同难度设定不同的可提交次数,超过挑战时间或挑战次数即为挑战失败。任意级别挑战失败后都会有冷却时间,这段时间内您将无法重新开始编程挑战。每挑战失败一次后会追加一次补充挑战。不同级别有不同的补充挑战上限。

    人工智能

    LintCode也为用户提供了以刷题的方式学习人工智能的平台。
    示例

    感谢浏览

    展开全文
  • LintCode的SQL教程中所有练习题的答案(已AC)
  • lintcode全部题解

    2018-10-07 22:56:31
    lintcode全部可以通过的题解答案,对于正在做lintcode的人帮助会很大,请好评
  • Lintcode

    2017-10-20 10:07:35
    Lintcode算法库

    觉得还是必须提高自己的逻辑思维和算法能力,Lintcode算法题还是比较好的~

    展开全文
  • 题目:https://www.lintcode.com/problem/478/note/?_from=collection&fromId=192 说实话。用if语句来做这个内容显得这个简单的程序变得特别臃肿。 class Calculator { public: /** * @param a: An integer *...

    题目:https://www.lintcode.com/problem/478/note/?_from=collection&fromId=192

    说实话。用if语句来做这个内容显得这个简单的程序变得特别臃肿。

    class Calculator {
    public:
        /**
         * @param a: An integer
         * @param operator: A character, +, -, *, /.
         * @param b: An integer
         * @return: The result
         */
        int calculate(int a, char Operator, int b) {
            // write your code here
            //cin >> operator; 
            if (Operator == '+'){
                return a + b;
            }
            else if(Operator =='-' ){
                return a - b;
            }
            else if(Operator == '*'){
                return a * b;
            }
            if(Operator == '/'){
                return a / b;
            }
        }
    };
    

    使用switch的方式做题如下:

    class Calculator {
    public:
        /**
         * @param a: An integer
         * @param operator: A character, +, -, *, /.
         * @param b: An integer
         * @return: The result
         */
        int calculate(int a, char Operator, int b) {
            // write your code here
            //cin >> operator; 
            switch (Operator){
                case '+':
                    return a + b;
                case '-':
                    return a - b;
                case '*':
                    return a * b;
                case '/':
                    return a / b;
            }
        }
    };
    

    使用switch的方式显得清晰很多。

    展开全文
  • lintcode-微软笔试

    2017-12-10 13:43:22
    646. 第一个独特字符位置 ...给出字符串 s = "lintcode",返回 0。 给出字符串 s = "lovelintcode",返回 2。 思路:简单的hash应用。遍历一次,纪录每个字符出现的次数,再遍历一次,次数大于1的字符就是答案。

    646. 第一个独特字符位置

    题目:
    给出一个字符串。找到字符串中第一个不重复的字符然后返回它的下标。如果不存在这样的字符,返回 -1
    样例:

    给出字符串 s = "lintcode",返回 0
    给出字符串 s = "lovelintcode",返回 2

    思路:简单的hash应用。遍历一次,纪录每个字符出现的次数,再遍历一次,次数大于1的字符就是答案。

    题目链接:http://www.lintcode.com/zh-cn/problem/first-position-unique-character/
    代码:
    class Solution {
    public:
        /*
         * @param s: a string
         * @return: it's index
         */
        int firstUniqChar(string &s) {
            // write your code here
            int len = s.length();
    		map <char,int> mp;
            for(int i = 0;i < len; i ++){
            	mp[s[i]] ++; 
            }
            for(int i = 0;i < len ; i ++){
            	if(mp[s[i]] == 1)
            		return i;
            }
            return -1;
        }
    };

    702. 连接两个字符串中的不同字符 


    题目:
    给出两个字符串, 你需要修改第一个字符串,将所有与第二个字符串中相同的字符删除, 并且第二个字符串中不同的字符与第一个字符串的不同字符连接。
    样例

    给出 s1 = aacdb, s2 = gafd
    返回 cbgf
    给出 s1 = abcs, s2 = cxzca;
    返回 bsxz

    思路:
    遍历字符串s1,把每个出现过的字符标记为1,然后遍历字符串s2中每个字符,如果字符在s1中出现过,标记为-1,其他字符标记为1。最后把标记为1的字符组合成新字符串,即为答案。

    题目链接:http://www.lintcode.com/zh-cn/problem/concatenated-string-with-uncommon-characters-of-two-strings/

    代码:
    class Solution {
    public:
        /*
         * @param : the 1st string
         * @param : the 2nd string
         * @return: uncommon characters of given strings
         */
        string concatenetedString(string &s1, string &s2) {
            // write your code here
        	map <char,int> mp;
        	string ans = "";
        	int len1 = s1.length();
        	int len2 = s2.length();
        	if(len2 == 0)
        		return s1;
        	for(int i = 0;i < len1; i ++){
        		if(mp[s1[i]] != 1)
    	    		mp[s1[i]] ++;
        	}
        	for(int i = 0;i < len2 ;i ++){
        		if(mp[s2[i]] == 1)
        			mp[s2[i]] = -1;
        	}
        	for(int i = 0;i < len2 ;i ++){
        		if(mp[s2[i]] == -1)
        			continue;
        		if(mp[s2[i]] != 1)
    	    		mp[s2[i]] ++;
        	}
    
        	for(int i = 0;i < len1; i ++){
        		if(mp[s1[i]] == 1){
        			ans = ans + s1[i];
        		}
        	}
        	for(int i = 0;i < len2 ;i ++){
        		if(mp[s2[i]] == 1){
        			ans = ans + s2[i];
        		}
        	}
        	return ans;
        }
    };


    728. 3个不同的因子


    题目:
    给一 正整数 n (1 <= n <= 10^18). 判断这个数是否正好只有 3 个不同的因子, 如果正好有 3 个不同的因子就返回 true, 否则返回 false
    样例

    给出 n = 9, 返回 true 数字 9 正好有 3 个因子: 1, 3, 9, 所以返回 true.
    给出 n = 10, 返回 false

    思路:
    数字 n 只有三个因子,说明除了1和 n 本身,只能有一个因子 x ,且 x 是这个数字的开方。x 除了1和本身不能再有别的因子,因此 x 是质数。首先遍历比1大比 x 小的整数,如果这个整数能整除 n ,即是 n 的因子,返回false。如果找到 x ,判断 x 是否是质数,如果是,返回true ,否则返回false。

    题目链接:http://www.lintcode.com/zh-cn/problem/three-distinct-factors/

    代码:
    class Solution {
    public:
        /*
         * @param : the given number
         * @return:  return true if it has exactly three distinct factors, otherwise false
         */
        bool isThreeDisctFactors(long long n) {
            // write your code here
            if(n < 4)
            	return false;
            if(n == 4)
            	return true;
            for(long long i = 3;i * i <= n ;i += 2){
            	if(n % i == 0 && i * i < n){
            		return false;
            	}
            	if(i * i == n){
    	        	for(long long j = 2;j*j <= i;j ++){
    	        		if(i % j == 0)
    	        			return false;
    	        	}
    	        	return true;
    	    	}
            }
            return false;
        }
    };


    534. 打劫房屋 II

    题目:

    在上次打劫完一条街道之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子围成了一个圈,这就意味着第一间房子和最后一间房子是挨着的。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警

    给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。

    样例

    给出nums = [3,6,4], 返回 6, 你不能打劫34所在的房间,因为它们围成一个圈,是相邻的。

    思路:
    动态规划。dp[ i ]表示前 i 个房子能打劫到的最多钱数。动态转移方程:dp1[i] = max(dp1[i-2] + nums[i],dp1[i-1]);(取前一个打劫 和 前一个不打劫的最大钱数)。因为这里是环形,首尾只能打劫一次,设两个状态转移方程,一个是打劫过第一间房屋的,一个是不打劫第一间房屋的,最后取最大值。 

    题目链接:http://www.lintcode.com/zh-cn/problem/house-robber-ii/

    代码:
    class Solution {
    public:
        /*
         * @param nums: An array of non-negative integers.
         * @return: The maximum amount of money you can rob tonight
         */
        int houseRobber2(vector<int> nums) {
            // write your code here
            int len = nums.size();
            int dp1[len + 2];
            int dp2[len + 2];
            if(len == 0)
            	return 0;
            if(len == 1)
            	return nums[0];
            dp1[0] = nums[0];
            dp1[1] = max(nums[0],nums[1]);
            dp2[0] = 0;
            dp2[1] = nums[1];
            int ans = dp1[1];
            for(int i = 2; i < len;i ++){
            	dp1[i] = max(dp1[i-2] + nums[i],dp1[i-1]);
            	dp2[i] = max(dp2[i-2] + nums[i],dp2[i-1]);
            	// printf("%d %d\n",dp1[i],dp2[i] );
            	if(i == len - 1){
           			ans = max(ans,dp1[i-1]);
           			ans = max(ans,dp2[i]);
           		}
            }
            return ans;
        }
    };




    展开全文
  • LintCode是很多国内外大厂的面试算法在线平台:https://www.lintcode.com/ 下面是对代码提交的一些简单的使用以及基础题目: URL:https://www.lintcode.com/problem/a-b-problem/ 描述 给出两个整数 aaa 和 ...
  • LintCode 1905. 字符删除 JavaScript算法

    千次阅读 2020-09-10 11:22:24
    描述 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符 说明 String contains spaces 1\leq len(str),len(sub) \leq 10^51≤len(str),len(sub)≤10​5​ 样例 输入: str=”They are students”,sub=”...
  • 代码 LintCode 网站的程序。
  • 1. 问题描述 输入一个正整数N, 你需要按如下方式返回一个字符串列表。 2.样例 样例 1: 输入:1 输出: [ "X" ] 样例 2: 输入:2 输出: [ "XX", "XX" ] 样例 3: 输入:3 ..." X X ",.
  • LintCode题集

    千次阅读 2019-11-03 15:50:26
    入门: LintCode 题目:大小写转换 LintCode 题目:反转一个3位整数 LintCode 题目:交换数组两个元素 LintCode 题目:三数之中的最大值 LintCode 题目:链表节点计数 ...LintCode 题目:LintCode的使用以及...
  • 第一次在lintcode上做题,发现只有c++,用c写会有编译警告,是不能用c吗? 如下图所示 ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559570222_271309.jpg) 求告知,感激不尽。
  • LintCode基础刷题汇总

    2019-12-23 10:30:10
    恰好看到LintCode有些题目很基础,练练手,考数据结构的算法题有一道还不会写,难受。 1.输入一个正整数n,求n!末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2。 这个题目不是要让你先求n的阶乘,然后再求...
  • 领扣LintCode问题答案-21. 移动的圆 目录21. 移动的圆鸣谢 21. 移动的圆 题目将给出两个圆A和B的圆心坐标(x,y)和半径r,现给你一个点P,使圆A圆心沿直线运动至点P。 请问圆A在运动过程中是否会与圆B相交?(运动过程...
  • LintCode刷题(入门篇)

    万次阅读 2017-11-06 15:21:03
    LintCode(入门篇)
  • https://www.1point3acres.com/bbs/thread-453640-1-1.html
  • Lintcode答案查询

    千次阅读 2019-06-12 17:13:06
    获取原始题目链接,如 https://www.lintcode.com/problem/pour-water/description 提取链接中problem和description之间的字符串 pour-water step 2 进入查询网址 九章算法-答案查询 输入 提取的字符串 pour-water ...
  • **LintCode题库之–入门题库 1.反转一个3位整数 反转一个只有3位数的整数。 样例 样例 1: 输入: number = 123 输出: 321 样例 2: 输入: number = 900 输出: 9 注意事项: 你可以假设输入一定是一个只有三位数的整数,...
  • 1. 单表CRUD 2. 使用一些简单函数 3. 多表连接CRUD (重点)
  • https://www.lintcode.com/problem/minimum-path-sum-ii/description 给定一个二维矩阵AAA,求从左下角到右上角的所有路径中权值和最小的路径,返回那个最小的权值和。每一步允许走四周的四个方向。权值和定义为路径...
  • https://www.lintcode.com/problem/topological-sorting/description 对一个有向图进行拓扑排序,返回任意一个符合条件的排序。可以用Kahn’s algorithm。具体做法是,先求出所有顶点的入度,然后取所有入度等于000...
  • LintCode学习

    2020-12-20 22:03:06
    文章目录3. 统计数字46. 主元素47. 主元素 II48. 主元素 III5.... 3. 统计数字 中文English 计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值。...在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 中,我们...
  • ...LintCode 和LeetCode的题差不太多LintCode 有中文,不过没有用户讨论,这点不太好, 还有个比较严重的问题是LintCode的test case相对LeetCode要差不少,遇到过好几次一模一样的代码...
  • LintCode 1300. 巴什博弈 JavaScript算法

    千次阅读 2020-09-04 15:00:05
    描述 你正在和朋友玩一个游戏:桌子上有一堆石头,每一次你们都会从中拿出1到3个石头。拿走最后一个石头的人赢得游戏。游戏开始时,你是先手。 假设两个人都绝对理性,都会做出最优决策。给定石头的数量,判断你是否...
  • lintcode-源码

    2021-02-21 09:34:22
    lintcode
  • 【数据结构】二叉树构造《LintCode072和LintCode073》整理思路LitCode073算法结果算法实现LintCode072算法结果算法实现 整理思路 通过前序或者后序便找到根节点,找到根节点后在中序遍历数组中根据根节点把数组划分...
  • https://www.lintcode.com/problem/convert-binary-search-tree-to-sorted-doubly-linked-list/description 给定一个二叉搜索树,要求将其转为双向循环链表,将每个节点的right指针视为双向链表节点的next指针,left...
  • LintCode 入门题解析 JavaScript算法

    千次阅读 2020-06-10 20:54:50
    前端刷题之LintCode(领扣)入门题解析 首先打开领扣的官网:领扣 然后我们来看看入门的前端题都有哪些: 注意:函数名称是定义好的,我们直接写处理函数就可以。 1. 题目:反转一个3位整数 解析:反转一个三位的...
  • 领扣LintCode问题答案-31. 数组划分 目录31. 数组划分鸣谢 31. 数组划分 给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得: 所有小于k的元素移到左边 所有大于等于k的元素移到...
  • 74. 第一个错误的代码版本: 代码库的版本号是从 1 到 n 的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。 你可以通过 isBadVersion 的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,161
精华内容 10,464
关键字:

lintcode