-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMNS.java
More file actions
82 lines (70 loc) · 1.7 KB
/
Copy pathMNS.java
File metadata and controls
82 lines (70 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*https://community.topcoder.com/stat?c=problem_statement&pm=1744&rd=4545*/
import java.util.*;
import java.lang.*;
import java.io.*;
class Solution {
public boolean nextPermutation(int[] nums) {
if(nums == null || nums.length<2)
return false;
int p=0;
for(int i=nums.length-2; i>=0; i--){
if(nums[i]<nums[i+1]){
p=i;
break;
}
}
int q = 0;
for(int i=nums.length-1; i>p; i--){
if(nums[i]> nums[p]){
q=i;
break;
}
}
if(p==0 && q==0){
reverse(nums, 0, nums.length-1);
return false;
}
int temp=nums[p];
nums[p]=nums[q];
nums[q]=temp;
if(p<nums.length-1){
reverse(nums, p+1, nums.length-1);
}
return true;
}
public void reverse(int[] nums, int left, int right){
while(left<right){
int temp = nums[left];
nums[left]=nums[right];
nums[right]=temp;
left++;
right--;
}
}
public int combos(int[] nums){
if(nums.length!=9){
return 0;
}
Arrays.sort(nums);
ArrayList t = new ArrayList();
int sum=0;
for( int num : nums) {
sum = sum+num;
}
sum = sum/3;
do{
if((nums[0]+nums[1]+nums[2]==sum)&&(nums[3]+nums[4]+nums[5]==sum)&&(nums[6]+nums[7]+nums[8]==sum)&&(nums[0]+nums[3]+nums[6]==sum)&&(nums[1]+nums[4]+nums[7]==sum)&&(nums[2]+nums[5]+nums[8]==sum)){
t.add(nums);
}
}while(nextPermutation(nums));
return t.size();
}
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
Solution id = new Solution();
int nums[]={1,2,6,6,6,4,2,6,4};
int s = id.combos(nums);
System.out.println("s"+s);
}
}