diff --git a/.classpath b/.classpath
new file mode 100644
index 00000000..3f3893af
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..444d1079
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/Problem1.class
+/Solution.class
+/Problem2.class
+/Problem3.class
diff --git a/.project b/.project
new file mode 100644
index 00000000..d20f5af9
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+
+
+ Array1
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/Problem1.java b/Problem1.java
new file mode 100644
index 00000000..0d2708f0
--- /dev/null
+++ b/Problem1.java
@@ -0,0 +1,18 @@
+class Solution {
+ public int[] productExceptSelf(int[] num) {
+ int n= num.length;
+ int[] result= new int[n];
+ result[0]=1;
+ int lp=1;
+ for(int i=1;i=0;i--){
+ rp=rp*num[i+1];
+ result[i]=result[i]*rp;
+ }
+ return result;
+ }
+}
\ No newline at end of file
diff --git a/Problem2.java b/Problem2.java
new file mode 100644
index 00000000..20cce90f
--- /dev/null
+++ b/Problem2.java
@@ -0,0 +1,42 @@
+class Problem2 {
+ public int[] findDiagonalOrder(int[][] mat) {
+ int m= mat.length;
+ int n= mat[0].length;
+ int r=0;
+ int c=0;
+ boolean dir= true;
+ int[] result= new int[m*n];
+ for(int i=0;i spiralOrder(int[][] matrix) {
+ int m= matrix.length;
+ int n= matrix[0].length;
+ int top=0;
+ int left=0;
+ int right= n-1;
+ int bottom= m-1;
+ List result= new ArrayList<>();
+ while(left<=right && top<= bottom){
+ for(int i=left;i<=right;i++){
+ result.add(matrix[top][i]);
+ }
+ top++;
+ for(int i=top;i<=bottom;i++){
+ result.add(matrix[i][right]);
+ }
+ right--;
+ if(top<=bottom){
+ for(int i=right; i>=left;i--){
+ result.add(matrix[bottom][i]);
+ }
+ bottom--;
+ }
+ if(left<=right){
+ for(int i=bottom;i>=top;i--){
+ result.add(matrix[i][left]);
+ }
+ left++;
+ }
+ }
+ return result;
+
+ }
+}
\ No newline at end of file