热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LeetCodeContest181

40分钟刷完4题,打破自己的最高纪录
第一题

class Solution {
public:
    vector createTargetArray(vector& nums, vector& index) {
        
         vector ans;
        
         for(int i=0;i=pos+1;j--)
             {
                 ans[j]=ans[j-1];
             }
             ans[pos]=nums[i];
         }
        return ans;
    }
};

第二题

遍历除数的时候从1到sqrt(nums[i])
10000*sqrt(100000) 是不会超时的

class Solution {
public:
    int sumFourDivisors(vector& nums) {
        
        int ans=0;
        for(int i=0;i

第三题

广搜,深搜都可以。

struct Node
{
    int x;
    int y;
    Node(){}
    Node(int x,int y)
    {
        this->x = x;
        this->y = y;
    }
};

class Solution {
public:
    int vis[500][500];
    int dir[6][2][2]={{{0,-1},{0,1}},{{-1,0},{1,0}},{{0,-1},{1,0}},{{0,1},{1,0}},{{0,-1},{-1,0}},{{0,1},{-1,0}}};
    bool hasValidPath(vector>& grid) {
        queue q;
        q.push(Node(0,0));
        vis[0][0]=1;
        int n=grid.size();
        int m=grid[0].size();
        while(!q.empty())
        {
            Node term = q.front();
            q.pop();
            
            if(term.x==n-1&&term.y==m-1)
                return true;
            
            int x = grid[term.x][term.y];
            
            for(int i=0;i<2;i++)
            {
                int xx = term.x + dir[x-1][i][0];
                int yy = term.y + dir[x-1][i][1];
                
                if(xx<0||xx>=n||yy<0||yy>=m)
                    continue;
                if(vis[xx][yy]==1)
                    continue;
                
                if(!judge(x,i,grid[xx][yy]))
                    continue;
                
                vis[xx][yy]=1;
                q.push(Node(xx,yy));
            }
            
        }
        return false;
    }
    
    bool judge(int x,int z,int y)
    {
        if(x==1&&z==0&&(y==1||y==4||y==6))
            return true;
        if(x==1&&z==1&&(y==1||y==3||y==5))
            return true;
        if(x==2&&z==0&&(y==2||y==3||y==4))
            return true;
        if(x==2&&z==1&&(y==2||y==5||y==6))
            return true;
        if(x==3&&z==0&&(y==1||y==4||y==6))
            return true;
        if(x==3&&z==1&&(y==2||y==3||y==5))
            return true;
        
        if(x==4&&z==0&&(y==1||y==3||y==5))
            return true;
        if(x==4&&z==1&&(y==2||y==5||y==6))
            return true;
        
         if(x==5&&z==0&&(y==1||y==4||y==6))
            return true;
        if(x==5&&z==1&&(y==2||y==3||y==4))
            return true;
        
         if(x==6&&z==0&&(y==1||y==3||y==5))
            return true;
        if(x==6&&z==1&&(y==2||y==3||y==4))
            return true;
        return false;
    }
};

第四题

KMP 的求最长公共前后缀的部分,就是Next的部分

class Solution {
public:
    int next[100005];
    string longestPrefix(string s) {
        
        getNext(s);
        
        int len = next[s.length()-1];
        
        string ans="";
        for(int i=0;i

推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了Codeforces Round #321 (Div. 2)比赛中的问题Kefa and Dishes,通过状压和spfa算法解决了这个问题。给定一个有向图,求在不超过m步的情况下,能获得的最大权值和。点不能重复走。文章详细介绍了问题的题意、解题思路和代码实现。 ... [详细]
  • 实现一个通讯录系统,可添加、删除、修改、查找、显示、清空、排序通讯录信息
    本文介绍了如何实现一个通讯录系统,该系统可以实现添加、删除、修改、查找、显示、清空、排序通讯录信息的功能。通过定义结构体LINK和PEOPLE来存储通讯录信息,使用相关函数来实现各项功能。详细介绍了每个功能的实现方法。 ... [详细]
  • 本文介绍了一种图的存储和遍历方法——链式前向星法,该方法在存储带边权的图时时间效率比vector略高且节省空间。然而,链式前向星法存图的最大问题是对一个点的出边进行排序去重不容易,但在平行边无所谓的情况下选择这个方法是非常明智的。文章还提及了图中搜索树的父子关系一般不是很重要,同时给出了相应的代码示例。 ... [详细]
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
author-avatar
LYJ189_163
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有