山東日照建設(shè)網(wǎng)站微信小程序怎么開通
Day4
啊啊啊啊,什么玩意,第一次因?yàn)闇y評沒過,約好的面試取消了,好尷尬呀,還有一家廈門的C/C++電話面,是一家我還挺喜歡的公司,面的稀爛,只能安慰自己我現(xiàn)在手上至少有一個(gè)offer
-
有效括弧,
/*開辟一個(gè)棧,左括號入棧、右括號與棧中最后進(jìn)入的是否組成一隊(duì),最后再查看棧中是否空*/
-
合并有序鏈表,
/*首先判斷l(xiāng)1是空則輸出l2,l2是空輸出l1然后進(jìn)行比較l1.val<l2.val,則l3.next=l1.val,li=li.next,l3=l3.next*/ /*使用遞歸思想,l1.next和l2*/
-
刪除相同項(xiàng)(有序)
/*因?yàn)槭怯行虻?#xff0c;所以可設(shè)兩個(gè)指針,pre,p比較pre和p的值,不相等pre,p都指向下一個(gè),否則p下一個(gè),pre不動(dòng)*/ /*直接使用數(shù)組,一個(gè)for,當(dāng)if(a[i]==a[i++])*/ int x=0; for(int i=0;i<nums.length;i++){if(nums[x]==nums[i]){countinue;}else{nums[++x]==nums[i];}//如果最后一項(xiàng)和倒數(shù)第二項(xiàng)不相同,則插入最后一項(xiàng),if(i == nums.length - 1 && nums[i - 1] != nums[i] ){nums[++x] = nums[i];}}
-
原地移除值
/*添加哨兵,和上面x的作用一樣,先等就x不加i++,*/ int x=0;for(int i=0;i<nums.length;i++){if(nums[x]==nums[i]){countinue}else{nums[++x]=nums[++i];} }
-
搜索插入位置
/*target依次跟數(shù)組中的值比較,當(dāng)查找到位置之后記錄下來,不等時(shí)哨兵++*/ if(nums[i]<target){j++;} C++//重點(diǎn),C++的int 定義不能再for里面 int i;for( i=0;i<nums.size();i++){if(nums[i]>=target) return i;//找到大于等于目標(biāo)值的數(shù),返回當(dāng)前下標(biāo)}return i;