資源描述:
《字節(jié)跳動(dòng)2018校招Android方向第四批》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
[問答題]題目描述以下函數(shù)用于將一顆二叉搜索樹轉(zhuǎn)換成一個(gè)有序的雙向鏈表。要求不能創(chuàng)建任何新的節(jié)點(diǎn),只能調(diào)整樹種節(jié)點(diǎn)指針的指向。如輸入下圖中左邊的二叉搜索樹,則輸出轉(zhuǎn)換后的排序雙向鏈表:10/\614/\/\481216轉(zhuǎn)換成:4<=>6<=>8<=>10<=>12<=>14<=>16請(qǐng)指出程序代碼中錯(cuò)誤的地方(問題不止一處,請(qǐng)盡量找出所有你認(rèn)為錯(cuò)誤的地方):1#include2usingnamespacestd;34structTreeNode{5intval;6TreeNode*left,*right;7};89TreeNode*Convert(TreeNode*root){10if(root==NULL)11returnroot;1213TreeNode*listHead=NULL;14TreeNode*listLastNode=NULL;15
116stacks;17while(root){18while(root){19root=root->left;20s.push(root);21}22root=s.top();23s.pop();24if(listHead==NULL){25listHead=root;26}else{27listLastNode->right=root;28}29listLastNode=root;30root=root->right;31}32returnlistHead;33}[問答題]題目描述以下代碼為適用于ListView的Adapter的部分代碼,請(qǐng)根據(jù)代碼解釋下1)getView方法中對(duì)convertView是否為空做了不同處理,目的是什么?2)viewholder有什么作用?privateListmData=newArrayList<>();…privatestaticclassViewHolder{
2TextViewtext;publicViewHolder(ViewrootView){text=(TextView)rootView.findViewById(R.id.text);}publicvoidbind(Stringitem){...}}@OverridepublicViewgetView(intposition,ViewconvertView,ViewGroupparent){Stringitem=mData.get(position);ViewHolderviewHolder;if(null==convertView){convertView=LayoutInflater.from(mContext).inflate(R.layout.list_item,parent,false);viewHolder=newViewHolder(convertView);convertView.setTag(viewHolder);}else{viewHolder=(ViewHolder)convertView.getTag();}viewHolder.bind(item);returnconvertView;}[問答題]題目描述列表卡頓怎么優(yōu)化?首先卡頓怎么量化;其次怎么發(fā)現(xiàn)造成卡頓的原因;針對(duì)可能發(fā)現(xiàn)的問題,又如何解決?請(qǐng)?jiān)O(shè)計(jì)一套方案。
3[編程題]編程題1時(shí)間限制:2秒空間限制:65536K有三只球隊(duì),每只球隊(duì)編號(hào)分別為球隊(duì)1,球隊(duì)2,球隊(duì)3,這三只球隊(duì)一共需要進(jìn)行n場比賽?,F(xiàn)在已經(jīng)踢完了k場比賽,每場比賽不能打平,踢贏一場比賽得一分,輸了不得分不減分。已知球隊(duì)1和球隊(duì)2的比分相差d1分,球隊(duì)2和球隊(duì)3的比分相差d2分,每場比賽可以任意選擇兩只隊(duì)伍進(jìn)行。求如果打完最后的(n-k)場比賽,有沒有可能三只球隊(duì)的分?jǐn)?shù)打平。輸入描述:第一行包含一個(gè)數(shù)字t(1<=t<=10)接下來的t行每行包括四個(gè)數(shù)字n,k,d1,d2(1<=n<=10^12;0<=k<=n,0<=d1,d2<=k)輸出描述:每行的比分?jǐn)?shù)據(jù),最終三只球隊(duì)若能夠打平,則輸出“yes”,否則輸出“no”輸入例子1:233003333輸出例子1:yes
4no例子說明1:case1:球隊(duì)1和球隊(duì)2差0分,球隊(duì)2和球隊(duì)3也差0分,所以可能的賽得分是三只球隊(duì)各得1分case2:球隊(duì)1和球隊(duì)2差3分,球隊(duì)2和球隊(duì)3差3分,所以可能的得分是球隊(duì)1得0分,球隊(duì)2得3分,球隊(duì)3得0分,比賽已經(jīng)全部結(jié)束因此最終不能打平。[編程題]編程題2時(shí)間限制:1秒空間限制:65536K有一個(gè)僅包含’a’和’b’兩種字符的字符串s,長度為n,每次操作可以把一個(gè)字符做一次轉(zhuǎn)換(把一個(gè)’a’設(shè)置為’b’,或者把一個(gè)’b’置成’a’);但是操作的次數(shù)有上限m,問在有限的操作數(shù)范圍內(nèi),能夠得到最大連續(xù)的相同字符的子串的長度是多少。輸入描述:第一行兩個(gè)整數(shù)n,m(1<=m<=n<=50000),第二行為長度為n且只包含’a’和’b’的字符串s。輸出描述:輸出在操作次數(shù)不超過m的情況下,能夠得到的最大連續(xù)全’a’子串或全’b’子串的長度。輸入例子1:81aabaabaa
5輸出例子1:5例子說明1:把第一個(gè)'b'或者第二個(gè)'b'置成'a',可得到長度為5的全'a'子串。