关注
/* * 1.字符串移位,给出字符串abc##dfg##gh,实现将所有#移至字符串串头。输出####abcdfggh(个人认为可以用后向移位,减少移位次数) */ static void moveStep(char[] str){ if(str==null||str.length<1) return ; int len=str.length; int s=len-1,e=len-1; for(int i=len-1;i>=0;i--){ if(str[i]=='#'){ int j=i; while(j>=0&&str[j]=='#')j--; //find successive # if(j<0) break; if(s==len-1)s=i;//first initial e=j; i=j+1; }else{ int j=i; while(j>=0&&str[j]!='#')j--; //find successive abcd... if(s==e)continue; else{ //fill abcd for(int k=i;k>j&&s>=0;k--){ str[s--]=str[k]; } //fill # for(int k=s;k>j;k--) str[k]='#'; } if(j<0)break; i=j+1; } } } /* * 给出一个二维矩阵,从(0,0)出发走到右下角,只能向右或向下走,找到一条路径,是这条路径上的总和最大。(个人认为使用动态规划或深度遍历) */ static int findMaxSum(int[][] nums,int row,int col){ if(row<1||col<1) return 0; int[][] dp=new int[row][col]; for(int i=0;i<row;i++){ if(i==0)dp[i][0]=nums[i][0]; else dp[i][0]=dp[i-1][0]+nums[i][0]; } for(int i=1;i<col;i++){ dp[0][i]=dp[0][i-1]+nums[0][i]; } for(int i=1;i<row;i++){ for(int j=1;j<col;j++){ dp[i][j]=Math.max(dp[i-1][j], dp[i][j-1])+nums[i][j]; } } return dp[row-1][col-1]; } /* * 给出一颗二叉树,两个叶节点,找到这两个叶节点互连通的一条最短路径。(个人认为主要是找两个叶节点的最近公共祖先) */ static int depthMin(TreeNode root,TreeNode s,TreeNode t){ if(root==null||s==t) return 0; ArrayList<Integer> l1=new ArrayList<Integer>(); ArrayList<Integer> l2=new ArrayList<Integer>(); find(root,s,new ArrayList<Integer>(),l1); find(root,t,new ArrayList<Integer>(),l2); //find common int i=0,j=0; /*for(int k=0;k<l1.size();k++) System.out.print(l1.get(k)+"->"); System.out.println(); for(int k=0;k<l2.size();k++) System.out.print(l2.get(k)+"->"); System.out.println(); */ while(i<l1.size()&&j<l2.size()&&l1.get(i)==l2.get(j)){ i++; j++; } int dep=l1.size()-i+l2.size()-j+1; //System.out.println(i+" "+j+" "+dep); return dep; } private static void find(TreeNode root, TreeNode t, ArrayList<Integer> cur,ArrayList<Integer> res) { // TODO Auto-generated method stub //System.out.println(root.val+" "+t.val); if(root==null) return; if(t==root){ cur.add(root.val); res.addAll(new ArrayList<Integer>(cur)); return; }else{ cur.add(root.val); //.for(int k=0;k<cur.size();k++) // System.out.print(cur.get(k)+"->"); //System.out.println(); find(root.left,t,cur,res); find(root.right,t,cur,res); cur.remove(cur.size()-1); } }
查看原帖
点赞 2
相关推荐
05-07 14:11
大连工业大学 Java 
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 6月18日,我将站上法庭,正式起诉美团。我送出的每一单快件,都是我人生碎片的一部分。我会一直前进,拿回在海外SaaS失去的一切。6.0W
- 2... 研一快手后端开发,一周速通,附一二面面经1.2W
- 3... 25校招 双非硕 拿下大厂🐧9845
- 4... 毕业一年在回到学校的感觉真不一样8946
- 5... 挚文集团-陌陌笔试202506068369
- 6... 主包租房的经验总结!5339
- 7... 金山办公测试春招一面_珠海3991
- 8... 深入浅出秋招简历3889
- 9... 上海银行 修改入职协议 不还本科毕业证学位证双证原件 😂3750
- 10... 华为暑期实习3151
正在热议
更多
# 我的实习收获 #
34826次浏览 525人参与
# 安利/避雷我的专业 #
73652次浏览 515人参与
# 实习吐槽大会 #
38575次浏览 181人参与
# 我在牛爱网找对象 #
186447次浏览 1402人参与
# 晒一晒你的工位 #
87224次浏览 309人参与
# 你后悔选择现在的专业吗 #
81937次浏览 672人参与
# 你觉得专业和学校哪个对薪资影响最大 #
58155次浏览 473人参与
# 求职遇到的搞笑事件 #
113643次浏览 772人参与
# 移动求职进展汇总 #
1692次浏览 17人参与
# 2025牛客秋招季 #
6362次浏览 197人参与
# 机械人与华为的爱恨情仇 #
113393次浏览 938人参与
# 双非能在秋招上岸吗? #
215530次浏览 1150人参与
# 我的租房踩坑经历 #
33752次浏览 338人参与
# 第一份工作应该选高薪还是热爱? #
61757次浏览 562人参与
# 26届秋招投递记录 #
4945次浏览 131人参与
# 我的国央企投递进展 #
43152次浏览 268人参与
# 穿越回高考你还会选现在的专业吗 #
24831次浏览 285人参与
# 牛友们,签完三方你在忙什么? #
95197次浏览 841人参与
# 地方国企笔面经互助 #
30023次浏览 99人参与
# 招银网络求职进展汇总 #
113349次浏览 742人参与