牛客题练习

牛客练习赛22 C 简单瞎搞题(bitset+暴力) 题意 给你n个区间,你可以从每个区间中任意挑选一个数字,然后将这n个数字的平方相加问你有多少种方案数。 思路 第一次用bitset,不知道如何去描述,仔细想想就是,我们遍历每个区间的每一个值,让他们都相加,然后放到set里面去去重,到最后我们看一下set的size有几个就好了,但是这样我们会超时,那么就需要看看如何去优化他,怎么优化呢?我们把他放到bitset里面搞搞,bitset的第i位表... 阅读详情

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

 

class Solution {
public:
    vector<int> printMatrix(vector<vector<int> > matrix) {
        vector<int> res;
        vector<vector<int>> dire={{0,1},{1,0},{0,-1},{-1,0}};
        int width=matrix[0].size(), height=matrix.size();
        int nums = width*height;
        vector<bool> tem(width, false);
        vector<vector<bool>> visited(height, tem);
        int round=0,i=0,j=0; //round用来控制dire中方向向量的选择
         while(0< nums){
            if(!visited[i][j]){
                        visited[i][j] = true;
                        cout<<matrix[i][j]<<",";
                        res.push_back(matrix[i][j]);
                        nums--;
                       if(nums==0) break;
                       if( j+dire[round][1]<0||i+dire[round][0]<0||i+dire[round[0]>= 
                           height  || j+dire[round][1]>=width||
                           visited[i+dire[round][0]][j+dire[round][1]])
                           {
                                round = (round+1)%4;  //改变方向
                           }
                        i += dire[round][0];
                        j += dire[round][1];
                      
            }
         } // while(0< nums)
         return res;
    }
};

大致思路:

设置方向数组0,1,-1,每次控制行列中一个的增减,按照右,下,左,上的方向循环直至所有节点都已访问(统计节点个数,num--),重点是方向的交替变化时间的判断:若出现越界(正向超,如>,负向超,如<)或者碰到已访问的元素,证明该换下一个方向了,round用来控制方向向量的选取,(round+1)%4的值更新用来表示循环到下一个方向,即:0,1,2,3,0,1,2,3...分别代表右,下,左,上,右,下,左,上...直至所有元素均已访问。结束、

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善 阅读详情

相关推荐

全国30米分辨率逐年植被覆盖度(FVC)数据集

植被覆盖度是描述地表植被的重要参数与生态环境的基本指标,在大气圈、土壤圈、水圈和生物圈中都占据着重要的地位,区域及全球范围的植被覆盖度估算对植被及相关领域的研究具有重要意义。分别对LANDSAT 5/7/8系列数据计算FVC,其中Landsat5 和Landsat 7NDVI计算利用 B4和B3波段,Landsat8 和Landsat9 NDVI计算利用 B5和B4波段。算法从当年所有观测数据中,以低云、低探测角度和最高NDVI值为标准,选择最佳的可用像元值,并进行换算。(3) FVC的计算。

地球资源数据云的官方博客 1809

牛客——2018年全国多校算法寒假训练营练习比赛(第一场)

这场还是新生赛,主要是模拟,搜索,递推递归,思维题。模拟手速还是慢,也会考虑不周全。 G:搜索: 链接:https://www.nowcoder.com/acm/contest/67/G 来源:牛客网 题目描述     圈圈圆圆圈圈,lulu小朋友最近看喜羊羊看多了,老是受刺激就画圆圈,听到小于8的数字时,还会画出十分有规律的圆圈,现在你需要根据样例观察出规律,编写程序,根据输入的数字

20164225的博客 2833

弘玑RPA进阶攻略

01.弘玑RPA产品概要。02.设计器的安装与卸载。03.设计器特性与使用。

长安诗社社长@-梁瀚文- https://github.com/HevnChin https://gitee.com/HevnChin 3647

牛客练习赛8

A 约数个数的和 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 给个n,求1到n的所有数的约数个数的和~ 输入描述: 第一行一个正整数n 输出描述: 输出一个整数,表示答案 示例1 输入 3

布呗之路 420

车间数据孤岛终于破了!C#上位机+MQTT打通产线与MES,数据延迟从小时级降到秒级

本文针对工业上位机开发中常见的车间数据与企业管理系统(MES)割裂问题,提出基于C#和MQTT协议的完整解决方案。通过EMQX MQTT Broker实现数据实时双向传输,将质量追溯时间从2小时缩短至10秒,生产计划自动下发,实现秒级数据延迟。方案采用分层解耦架构,支持设备更换和系统升级,核心优势包括低延迟、高可靠性和易扩展性。文章详细介绍了MQTT协议选型理由、整体架构设计、技术选型(EMQX Broker和MqttNet客户端),并提供了C#实现代码和部署流程。该方案已在实际产线验证,可有效解决&quo

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 484

rk3399开发环境的介绍

由于Bluez的介绍文档有限,以及对Linux 系统/驱动概念、D-Bus 通信和蓝牙协议都有要求,加上网络上其实没有一个完整的介绍Bluez系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度,学习曲线也相对较陡,所以我有了这个想法,专门对Bluez做一个系统性的介绍,尽可能的涵盖所有内容。

朝气蓬勃 711

补题:牛客练习赛57 还差三题.jpg

为了督促自己补题!以后都开博客记录! 本次比赛:牛客练习赛57 比赛地址:点我 时间:2020/1/11 共做出两题,最后卡在搜索。 睡过头,晚了半小时才开始打 A:签到题,按照题意模拟即可。 B:直接模拟超时,判断的话情况又太多,可以把中间的过程都跳过,让他们两个都保持血量大于0,再模拟即可。 C:刚开始写了个O(3n^nn)的算法,分为选与不选,和放在下一个箱子。T了一发之后就开始摸鱼了。 优...

xuxiaobo1234的博客 332

Android 9.0 延时开机动画解决首次开机黑屏和去掉android正在启动的提示框

在9.0的系统产品rom定制化开发中,在一些产品中会出现在首次开机的时候,由于在开机动画播放完以后会出现几秒短暂的黑屏情况,然后进入默认Launcher,这在产品体验上 也是感觉到有点差,所以会要求在去掉这个首次开机黑屏的效果,和在启动过程中的 android is starting这个提示框的这些效果优化,接下来就分析下相关功能, 然后实现这个功能的开发

安卓兼职framework和app工程师的博客 3246

牛客练习赛B题(前后缀)

我们将这一步看作分界线,枚举每一条分界线计算出这条路径的元素和,然后我们考虑交换列的情况,(1)分界线左边的列与分界线右边的列交换 (2)分界线左边的列与分界线交换 (3)分界线右边的列与分界线交换,同时我们发现左边的列交换到右边只与下面的数字有关,右边同理,所以我们还需要维护一个前后最大差值的数组,pr[N],和sf[N]。由于数组空间大小为1e6且有多次询问,每次询问得重置数组,为了减小不必要的时间和空间浪费,我们选择每次开vector(n+5)的大小。

2302_79372568的博客 250

【RH850/U2A】:功能安全

功能安全相关

3130

把 ABAP ALV 表头做成两层分组:用 TOP-OF-PAGE 手工绘制双行列标题

摘要:本文介绍了在SAP ALV List中实现双层表头的方法。通过关闭系统默认列标题(no_colhead='X'),在TOP_OF_PAGE事件中手动绘制表头,使用sy-uline和sy-vline绘制线条实现分组效果。关键点包括:1)关闭系统表头;2)在事件处理中分两行输出分组标题和字段名;3)利用系统自动拼接线条的特性绘制表格边框。文中还指出了常见问题如线条自动粘连、颜色不生效等,并提供了完整示例代码和详细解释。这种方法适用于需要对字段进行业务分组的报表场景。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 261

牛客练习赛134 —— B题 python 补题 + 题解

往下走只有一次,所以选择枚举往下走的分界点

查理零世的博客 803

视觉媒体通信作业记录(六)端到端的视频传输系统

将采集、编码、传输、显示各模块连接起来,形成一个端到端的视频通信系统,开发一个特色模块,将其加入系统;

weixin_45774698的博客 1967

牛客练习赛37 C题筱玛的迷阵探险

牛客练习赛37 C题筱玛的迷阵探险 二分dfs,找出对角线上对应的每个可能结果,开俩个数组,分别存在俩个数组中,一个插入到字典树中,另一个查找和它异或最大的数。 #include &amp;amp;lt;bits/stdc++.h&amp;amp;gt; using namespace std; int Map[24][24]; const int maxn=1e5+10; int ch[32*maxn][2]; int val...

Do It Youself! 498

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

牛客C基础题练习

大家好啊!💖💖💖我是vince,大家在学习编程语言的过程中应该会发现,理论基础很重要,然后实际上机操作更加重要,而上机操作无非是写写项目代码,更多的当然是刷题啦~然后此时一个好的刷题网站真的非常重要,它会让你方向正确,学习思路清晰,因此,在这里🌷给爱学习的小伙伴们推荐个学习、刷题的网站牛客网,其中面试题应有尽有,真的能够给你带来很好的学习体验。👇👇👇爱学习的亲们!🎉🎉🎉请点击我开始注册!学习、刷题🎉🎉🎉以下是牛客题库界面接下来,我们进入正题,我们来看看相关的一些例题。爱学习的亲们!https。...

forever的博客 1238

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SHELL练习题(1-11题)记录(牛客)

cat demo | awk 'NR>=5{print $0}' //NR:代表当前处理的行号。

m0_73062138的博客 1065

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

牛客练习赛23 D题 托米的咒语

                                         牛客练习赛23 D题 托米的咒语 题目链接:https://www.nowcoder.com/acm/contest/156/D 题目大意: 给出一个字符串,求”abcdefghi”的全排列中有几个是该字符串的子序列。 分析: 该题需注意是计算全排列的中符合条件种类,而不是个数。其次,看到字符串匹配的题目会...

OttsWang的博客 430

牛客SQL练习第68题

题目描述 牛客每天有很多人登录,请你统计一下牛客每个用户最近登录是哪一天,用的是什么设备. 有一个登录(login)记录表,简况如下: 第1行表示id为2的用户在2020-10-12使用了客户端id为1的设备登录了牛客网 。。。 第4行表示id为3的用户在2020-10-13使用了客户端id为2的设备登录了牛客网 还有一个用户(user)表,简况如下: 还有一个客户端(client)表,简况如下: 请你写出一个sql语句查询每个用户最近一天登录的日子,用户的名字,以及用户用的设备的名字,并且查询结果按

双人与余的博客 315

【牛客刷题】每日一题——初始Java语言练习

hello,大家好!这是博主的新建专栏,【牛客刷题】,日后会不断更新数据结构与算法的练习题锦集,欢迎订阅!

冲击大厂之路!!! 1106

【牛客刷题】SHELL练习

Linux 的 Shell 种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh) 由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。1、使用文本编辑器(vi/vim命令创建文件),以.sh为文件的扩展名(php写的就.

leo788的博客 700

牛客练习赛132-c题--求组合数 通俗易懂

2.然后就是逆向思维,我们找所有情况 - 不存在两个点连线是圆的直径的情况,这样问题就简化很多了。因为按照一般思维用容斥原理求集合的交一定是会超时的,这题数据量较大。这周五尝试写了一下牛客的练习赛,发现了一道非常好的求组合数学的题,并且这题数据范围可以达到10的7次方,比以往的求组合数的题数据量都大,但只需小小改动,就可达到。1.首先我们发现当n为奇数的时候,不可能存在两个点连线为圆的直径的情况。圆上面有n等分点,取其中k个点,如果存在两个点连线为圆的直径的时候,则是一个美丽的图。

May_as_well的博客 661

牛客SQL练习第46题

题目描述 在audit表上创建外键约束,其emp_no对应employees_test表的主键id。 (audit已经创建,需要先drop) CREATE TABLE employees_test( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL ); CREATE TABLE audit( EMP_no INT NOT NULL, create_date da

双人与余的博客 222

【无标题】牛客练习题题题

sssssmwk的博客 160

牛客SQL练习第18题

题目描述 查找当前薪水(to_date=‘9999-01-01’)排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,你可以不使用order by完成吗 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gende

双人与余的博客 235

牛客练习赛100B题;

qq

m0_64267361的博客 284

牛客练习赛部分题

牛客练习赛81 B-小 Q 与彼岸花 思路: 区间dp,因为在[l,r]中找到两个ai异或的最大值,dp[i][j]可以定义为在区间[i~j]之间的最大异或值,一般的区间dp都是三层循环,最外层距离,第二层起点,终点,第三层断点,但是这个就两个值的最大值,因为比如1 2 3区间的最大异或值,肯定就是先端点1,3,然后就是从区间 [1-2]之间和[2-3]之间去找最大值,所以转移方程我们就可以定义为dp[i][j]=max(dp[i][j],max(dp[i-1][j],dp[i][j-1])),然后比较

lvy_yu_ET的博客 268
上一篇: 判断字符串是否表示数值--牛客网
下一篇: 栈的弹出顺序是否正确
Poo_Chai
博客等级 码龄9年 178粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Poo_Chai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值