牛客

牛客网android练习试题总结

匿名 (未验证) 提交于 2019-12-03 00:22:01
早上看了一篇csdn的文章,博主提到平常提升技能的方式中有一个“牛客网”上有各种技术试题,一前从未听说过,看了一下还不错,做完试题还有网友的解答。挺好,里面许多知识点可能是在实际项目中没有考虑过得,作为扩充知识点来说不错,从中也能受到一些启示。 1、使用SimpleAdapter作为listview适配器 时,行布局能支持的组件? 通过查看SimpleAdapter可知, 可以支持:1)、继承 Checkable接口 2)、textView 3)、ImageView 2、在一个ListView中,显示的行布局有多种不同形式,例如某些行只有ImageView,而另外一些行只有TextView,需要重写哪几个方法? 如果listview只是一种类型,那么只需要重写getCount(),和getview()即可,但是这里已经写明了,有imageview和textview,所以需要getItemId()来得到当前的view id号,和getItemViewType()得到当前view的类型 至于最后一个也getViewTypeCount()是需要的,这些方法都是非常有必要的。 3、 一个TextView的style中定义了textColor属性,TextView本身也设置textColor属性,那么TextView本身定义的优先级较高 4、IntentService

牛客练习赛51

匿名 (未验证) 提交于 2019-12-03 00:05:01
A 链接: https://ac.nowcoder.com/acm/contest/1083/A 来源:牛客网 给出一个字符串s,你需要做的是统计s中子串”abc”的个数。子串的定义就是存在任意下标a<b<c,那么”s[a]s[b]s[c]”就构成s的一个子串。如”abc”的子串有”a”、”b”、”c”、”ab”、”ac”、”bc”、”abc”。 #include<bits/stdc++.h> using namespace std ; int main () { string ch; cin>>ch; int k=ch.size(),a=0,b=0,c=0; for(int i=0;i<k;i++) { if(ch[i]=='a') a++; if(ch[i]=='b') b+=a; if(ch[i]=='c') c+=b; } cout<<c; return 0; } 这道题刚看的时候想用搜索,但是仔细就会发现子串的记录也有规律。。。每次循环一次如果是a则记录a出现的次数,b=b+a的意思就是每次记录包含ab的子串,出现一次b便有(b+a)个(ab)子串,同理c 。循环一次就解决了。 B 链接: https://ac.nowcoder.com/acm/contest/1083/B 来源:牛客网 给出一个长度为n的字符串s和q个查询。对于每一个查询,会输入一个字符串t

2018年牛客多校寒假 第四场 F (call to your teacher) (图的连通性)

匿名 (未验证) 提交于 2019-12-02 23:49:02
题目链接 传送门: https://ac.nowcoder.com/acm/contest/76/F 思路: 题目的意思就是判断图的连通性可以用可达性矩阵来求,至于图的存储可以用邻接矩阵来储存,求出来可达性矩阵后判断下 a[1] [n] 是不是为零就好了,不为零的话说明从1(自己)到 n(teacher)是连通的,为零的话就说明不是连通的 代码: 1 #include < bits / stdc ++. h > 2 3 using namespace std ; 4 const int MAXN = 60 ; 5 int n , m , a [ MAXN ][ MAXN ]; 6 7 int main () 8 { 9 while ( cin >> n >> m ) 10 { 11 int x , y ; 12 while ( m -- ) 13 { 14 cin >> x >> y ; 15 a [ x ][ y ] = 1 ; 16 } 17 18 for ( int i = 1 ; i <= n ; i ++ ) 19 for ( int j = 1 ; j <= n ; j ++ ) 20 { 21 if ( a [ j ][ i ] == 1 ) 22 { 23 for ( int k = 1 ; k <= n ; k ++ ) 24 if (( a [ j ][ k ]

牛客月赛总结

匿名 (未验证) 提交于 2019-12-02 23:48:02
在此贴下网址: https://ac.nowcoder.com/acm/contest/949#question 我觉得人生最重要的是,一步一个脚印,踏实。而且,集中精力攻克一点,不走回头路,不走冤枉路。 所以我昨天打了牛客赛,今天把做法总结下。 1. 链接: https://ac.nowcoder.com/acm/contest/949/A 来源:牛客网 输入描述: 输出描述: 共一行,输出 "Shi" 或 "Yang"(不输出引号)。 示例1 输入 复制 1 输出 复制 Yang 说明 小石只能取走 11,小阳赢。 示例2 输入 复制 2 输出 复制 Shi 说明 若小石取走 11,则小阳只能取走 22,小石赢。 备注: 1≤n≤109特殊收获:1.认识了向上和向下取整符号2.PI的高精度定义:const double pi=acos(-1); double pi=acos(-1.0);//反余弦函数,头文件为<amath>或<math.h>,所求的pi精度较高。

牛客网中矩阵中的路径

为君一笑 提交于 2019-12-02 05:38:46
牛客网的题目如下: 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。 如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径, 但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。 解决思想: 首先找到访问的起点,就是目标字符串的第一个字符与矩阵中的该字符的所有位置找出来。 使用bfs,将起点位置,上下左右,都去访问,每访问矩阵中一个字符的时候,会判断该字符是否合法,合法性的判断标准为: 字符所在的位置,行x,列y,属于矩阵中,该字符没有已经被访问过, 如果该字符和目标字符串的当前需要访问的字符相同,说明当前字符有可能是路径中的一员,需要保存当前访问的信息,并放入队列,当访问它的邻居的时候, 就可以把当前访问的下标,拿来使用, 只要访问矩阵节点的保存的下标,与字符串的最后一个字符的下标相同,说明目前字符串中的字符完全访问完毕,路径就表示找到。 实现的代码 本文实现的代码,只能满足牛客网的测试用例,当测试用例较全的时候,该代码无法通过,但可以用于学习下bfs, #include

【机器学习】【深度学习】【人工智能】【算法工程师】面试问题汇总(持续更新)

流过昼夜 提交于 2019-12-01 18:20:50
微信公众号 1. 算法 【1】动态规划经典题目总结 2. 数据结构 2.1 数组和字符串 【1】【算法】删除一个数组中为0的元素 【2】牛客网在线编程专题《剑指offer-面试题34》丑数 【3】牛客网在线编程专题《剑指offer-面试题4》替换空格 【4】牛客网在线编程专题《剑指offer》(1)二维数组中的查找 2.2 链表 【1】牛客网在线编程专题《剑指offer-面试题37》两个链表的第一个公共结点 【2】【算法】如何判断链表有环 【3】牛客网在线编程专题《剑指offer-面试题17》合并两个排序的链表 【4】牛客网在线编程专题《剑指offer-面试题16》反转链表 【5】牛客网在线编程专题《剑指offer-面试题15》链表中倒数第k个节点 【7】【数据结构】线性链表的Java实现 【8】牛客网在线编程专题《剑指offer-面试题5》从尾到头打印链表 2.3 栈和队列 【1】牛客网在线编程专题《剑指offer-面试题7》用两个栈来实现队列 2.4 树 【1】牛客网在线编程专题《剑指offer-面试题58》二叉树的下一个结点 【2】牛客网在线编程专题《剑指offer-面试题39:题目二》判断是否是平衡二叉树 【3】牛客网在线编程专题《剑指offer-面试题39》二叉树的深度 【4】牛客网在线编程专题《剑指offer-面试题18》树的子结构 【5】牛客网在线编程专题

牛客OI月赛12-提高组题解

做~自己de王妃 提交于 2019-11-30 17:49:36
牛客OI月赛12-提高组 当天晚上被 \(loli\) 要求去打了某高端oj部分原创的模拟赛,第二天看了牛客的题觉得非常清真,于是就去写了 不难发现现场写出 \(260\text{pts}\) 并不需要动脑子,而且 \(260\text{pts}\) 甚至还有 \(rk2\) ,感觉没打非常吃亏 A.小w的进制转换 大概理解一下就是询问 \(1\) 到 \(n\) 里有多少个数的二进制表示是反回文形式的,即对称位置是相反的,比如 \(1001,101010\) 之后根据题意,这个反回文的二进制串长度必须是偶数(因为长度为奇数的串对称中心和对称中心不相反) 也不难发现这个 反回文串确定了前一半后面就确定了 考虑枚举这个反回文的串的长度,显然长度小于 \(n\) 的长度的串,我们只需要让最高填 \(1\) ,最低位填 \(0\) ,之后除去最高位的前 \(\frac{len-2}{2}\) 随便填即可 对于长度等于 \(n\) 的串,还是最高填 \(1\) ,最低位填 \(0\) ,除去最高位的前 \(\frac{len-2}{2}\) 位填一个严格小于 \(n\) 的前 \(\frac{len-2}{2}\) 位的数,这样就能保证严格小于 \(n\) 之后再特判一下前 \(\frac{len-2}{2}\) 位和 \(n\) 的前 \(\frac{len-2}{2}\)

零基础一年拿下BAT三家offer

孤街浪徒 提交于 2019-11-29 17:17:09
背景 1、本人本科一本双非垫底的那种,硕士211。本硕电子通信,完全0基础,转行一年。 2、研一上第一学期上课+外派到老师合作公司写MATLAB。去年4月开始学习Java。 起步 1、实话说,刚决定转行的时候完全零基础一开始真的啥也不会,甚至不知道怎么去学习。的确,计算机资源很多,自学足够的但是完全不知道怎么去用去学习啊! 啥是leetcode? 啥是github? 啥是IDEA? 啥是牛客网? 各种疑问,怎么操作啊?点哪个啊?身边没有人教啊。 有时候真的只是懂的人点两下的事情,自己搞要一下午。妈个鸡,第一个月真是完全浪费时间,差点原地放弃。 过程 1、战略上坚定信心: 既然那么多人都可以做程序员,甚至高中生都可以,别人可以我肯定也可以。 2、战术上制定计划: 培训班看视频我也看视频咯,对,就是各种视频。(现在想想自己甚至就是培训班出来的) 视频的好处是快速入门,犹如身边有老师手把手教,一步一步操作给你看。很重要一点,培训班老师上课非常认真,真的是面向高中生水平讲课。完全不用担心有卡顿,看不懂。记得某门课老师还在讲啥是二进制和排列组合。。 Java入门(4-7月): 我在 阿里云大学 上找了 李兴华老师 的Java就业班,看了部分,走完了Java SE,Java EE,MYSQL,SSM,Git的使用,跟着敲一遍,耗时大概3个月时间。学会了Java基本语法

牛客练习赛51

我们两清 提交于 2019-11-29 14:32:57
A 链接: https://ac.nowcoder.com/acm/contest/1083/A 来源:牛客网 给出一个字符串s,你需要做的是统计s中子串”abc”的个数。子串的定义就是存在任意下标a<b<c,那么”s[a]s[b]s[c]”就构成s的一个子串。如”abc”的子串有”a”、”b”、”c”、”ab”、”ac”、”bc”、”abc”。 #include<bits/stdc++.h> using namespace std ; int main () { string ch; cin>>ch; int k=ch.size(),a=0,b=0,c=0; for(int i=0;i<k;i++) { if(ch[i]=='a') a++; if(ch[i]=='b') b+=a; if(ch[i]=='c') c+=b; } cout<<c; return 0; } 这道题刚看的时候想用搜索,但是仔细就会发现子串的记录也有规律。。。每次循环一次如果是a则记录a出现的次数,b=b+a的意思就是每次记录包含ab的子串,出现一次b便有(b+a)个(ab)子串,同理c 。循环一次就解决了。 B 链接: https://ac.nowcoder.com/acm/contest/1083/B 来源:牛客网 给出一个长度为n的字符串s和q个查询。对于每一个查询,会输入一个字符串t

圆圈中最后剩下的数

≯℡__Kan透↙ 提交于 2019-11-28 10:01:10
【问题】每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数….这样下去….直到剩下最后一个小朋友,可以不用表演,并且拿到牛客名贵的“名侦探柯南”典藏版(名额有限哦!!^_^)。请你试着想下,哪个小朋友会得到这份礼品呢?(注:小朋友的编号是从0到n-1)。 【思路】这很直接的思路是循环链表的方式,本来想要用list容器做的,但最后OJ过不了,所以最后还是使用vector容器吧,由于这些小朋友是一个圈的形式,因此当找到第一个小朋友时假设为temp,则下一个m-1的位置为temp = (tmp+m-1) % data.size(),注意 由于temp找到时会被删掉,因此其下一个的位置仍然是temp, 只不过data.size()会减小一个! class Solution { public: int LastRemaining_Solution(int n, int m) { if ((m <= 0) && (n <= 0)) return -1; vector<int> data