【1】hello world(10分)
描述:判断从一个字符串中是否能抓取出helloworld,可以不连续但是一定要保持顺序。如helllllllo wwwwwwworld 但不能是helolllllworld。
public static boolean isHelloWorld(String text) {
char[] word1=text.toCharArray();
char[] word2="helloworld".toCharArray();
int i=0;int j=0;
int m=word1.length;
int n=word2.length;
while(i<m && j<n){
if(j==n-1){
if(word1[i]==word2[j])
return true;
}
else if(word1[i]==word2[j]){
i++;
j++;
}
else
i++;
}
return false;
}
【4】删除元素(10分)
给定一个数组 和需要删除的元素 返回删除值相同的元素之后 数组的长度,并且修改原数组 只用到额外O(1)的空间.元素的顺序不能改变 但是你在新的长度之后留下了什么并不重要.
Given nums = [3,2,2,3], val = 3, answer 2 nums ==> [2,2,0,0]
public int removeElement(int[] nums, int val) {
int count=nums.length;
int temp;
int NUM=0;
if(count>0)
{
for (int i = 0; i <count-NUM;)
{
if (nums[i]==val)
{
temp=nums[i];
for (int j = 0; j < count-1; j++) {
nums[j]=nums[j+1];
}
nums[count-1]=temp;
NUM++;
}else {
i++;
}
}
int call=count-NUM;
return call;
} else return 0;
}
【5】二叉树最大深度(15分)
计算一棵二叉树的最大深度
public int maxDepth(TreeNode root) {
int m =0,n = 0;
if ( root.val == 0) {
return 0 ;
}
m=maxDepth(root.getLeft());
n=maxDepth(root.getRight());
root.val=(m>n)?m+1:n+1;
return root.val;
}
class TreeNode {
private int val; // 表示父亲到当前节点的距离
private TreeNode left;
private TreeNode right;
TreeNode(int val){
this.val=val;
}
}