leetcode刷题25天
202. Happy Number
Write an algorithm to determine if a number is “happy”.
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.
Example:
Input: 19
Output: true
Explanation:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
代码:
class Solution {
public static boolean isHappy(int n) {
int temp1 = n,temp2 = n;
while(temp1>1) {
temp1 = caculateSquare(temp1);
if(temp1==1)
return true;
temp2 = caculateSquare(caculateSquare(temp2));
if(temp2==1)
return true;
if(temp1==temp2)
return false;
}
return true;
}
public static int caculateSquare(int n) {
int sum = 0;
while(n>0) {
sum = sum + (n%10)*(n%10);
n = n/10;
}
return sum;
}
}
- Remove Linked List Elements
Remove all elements from a linked list of integers that have value val.
Example:
Input: 1->2->6->3->4->5->6, val = 6
Output: 1->2->3->4->5
代码:
class Solution {
public ListNode removeElements(ListNode head, int val) {
if(head == null)
return null;
ListNode p = head;
while(p!=null) {
if(p.val == val) {
//System.out.println(1);
head = p.next;
p = head;
continue;
}
while(p.next!=null&&p.next.val == val){
//System.out.println(val);
if(p.next.next!=null)
p.next = p.next.next;
else
p.next = null;
}
p = p.next;
}
return head;
}
}