Skip to content
73 changes: 73 additions & 0 deletions answer2.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

public int[] twoSum(int[] nums, int target) {
int ans[] = new int[2];
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
if (nums[i] + nums[j] == target) {
ans[0] = i;
ans[1] = j;
}
}
}
return ans;
}

public static int romanToInt(String s) {
int ans = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'I')
ans++;
else if (s.charAt(i) == 'V')
ans += 5;
else if (s.charAt(i) == 'X')
ans += 10;
else if (s.charAt(i) == 'L')
ans += 50;
else if (s.charAt(i) == 'C')
ans += 100;
else if (s.charAt(i) == 'D')
ans += 500;
else if (s.charAt(i) == 'M')
ans += 1000;
}
return ans;
}

public static void permute(int[] nums) {
ArrayList<ArrayList<Integer>> ans = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> save = new ArrayList<Integer>();
save.add(nums[0]);
ans.add(save);
for (int i = 1; i < nums.length; i++) {
ArrayList<ArrayList<Integer>> save2 = new ArrayList<ArrayList<Integer>>();
for (int j = 0; j < ans.size(); j++) {
for (int k = 0; k <= i; k++) {
ArrayList<Integer> save3 = new ArrayList<Integer>();
save3 = (ans.get(j));
ArrayList<Integer> save4 = new ArrayList<Integer>();
for (int l = 0; l < k; l++)
save4.add(save3.get(l));
save4.add(nums[i]);
for (int l = k; l <= (i - 1); l++)
save4.add(save3.get(l));
save2.add(save4);
}
}
ans = save2;
}
for (int i = 0; i < ans.size(); i++) {
for (int j = 0; j < ans.get(i).size(); j++) {
System.out.print(ans.get(i).get(j));
System.out.print(' ');
}
System.out.print("\n");
}
}

public static void main(String[] args) {
}
}
104 changes: 104 additions & 0 deletions final code.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
import java.util.ArrayList;
import java.util.List;

public class Main {
public int[] twoSum(int[] nums, int target) {
int ans[] = new int[2];
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
if (nums[i] + nums[j] == target) {
ans[0] = i;
ans[1] = j;
}
}
}
return ans;
}

public int romanToInt(String s) {
int n = s.length();
int ans = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'I')
ans++;
else if (s.charAt(i) == 'V')
ans += 5;
else if (s.charAt(i) == 'X')
ans += 10;
else if (s.charAt(i) == 'L')
ans += 50;
else if (s.charAt(i) == 'C')
ans += 100;
else if (s.charAt(i) == 'D')
ans += 500;
else if (s.charAt(i) == 'M')
ans += 1000;
}
for (int i = 0; i < (n - 1); i++) {
if (s.charAt(i) == 'I') {
if (s.charAt(i + 1) == 'V' || s.charAt(i + 1) == 'X')
ans -= 2;
if (s.charAt(i + 1) == 'L' || s.charAt(i + 1) == 'C')
ans -= 2;
if (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')
ans -= 2;
}
else if (s.charAt(i) == 'V') {
if (s.charAt(i + 1) == 'X')
ans -= 10;
if (s.charAt(i + 1) == 'L' || s.charAt(i + 1) == 'C')
ans -= 10;
if (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')
ans -= 10;
}
else if (s.charAt(i) == 'X') {
if (s.charAt(i + 1) == 'L' || s.charAt(i + 1) == 'C')
ans -= 20;
if (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')
ans -= 20;
}
else if (s.charAt(i) == 'L') {
if (s.charAt(i + 1) == 'C')
ans -= 100;
if (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')
ans -= 100;
}
else if (s.charAt(i) == 'C') {
if (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')
ans -= 200;
}
else if (s.charAt(i) == 'D') {
if (s.charAt(i + 1) == 'M')
ans -= 1000;
}
}
return ans;
}

public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> ans = new ArrayList<List<Integer>>();
List<Integer> save = new ArrayList<Integer>();
save.add(nums[0]);
ans.add(save);
for (int i = 1; i < nums.length; i++) {
List<List<Integer>> save2 = new ArrayList<List<Integer>>();
for (int j = 0; j < ans.size(); j++) {
for (int k = 0; k <= i; k++) {
List<Integer> save4 = new ArrayList<Integer>();
for (int l = 0; l < k; l++)
save4.add(ans.get(j).get(l));
save4.add(nums[i]);
for (int l = k; l <= (i - 1); l++)
save4.add(ans.get(j).get(l));
save2.add(save4);
}
}
ans = save2;
}
return ans;
}

public static void main(String[] args) {

}
}
116 changes: 94 additions & 22 deletions src/main/java/Exercises2.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,22 @@
import java.util.Map;

public class Exercises2 {

/*
Given an array of integers nums and an integer target, return indices of the two numbers
such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.
You can return the answer in any order.
*/

public int[] twoSum(int[] nums, int target) {
// TODO
return null;
int[] ans = new int[2];
int cnt = 0;
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] + nums[j] == target) {
ans[0] = i;
ans[1] = j;
cnt++;
break;
}
}
if (cnt > 0)
break;
}
return ans;
}

/*
Expand Down Expand Up @@ -49,21 +53,89 @@ C can be placed before D (500) and M (1000) to make 400 and 900.
*/

public int romanToInt(String s) {
// TODO
return 0;
int n = s.length();
int ans = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'I')
ans++;
else if (s.charAt(i) == 'V')
ans += 5;
else if (s.charAt(i) == 'X')
ans += 10;
else if (s.charAt(i) == 'L')
ans += 50;
else if (s.charAt(i) == 'C')
ans += 100;
else if (s.charAt(i) == 'D')
ans += 500;
else if (s.charAt(i) == 'M')
ans += 1000;
}
for (int i = 0; i < (n - 1); i++) {
if (s.charAt(i) == 'I') {
if (s.charAt(i + 1) == 'V' || s.charAt(i + 1) == 'X')
ans -= 2;
if (s.charAt(i + 1) == 'L' || s.charAt(i + 1) == 'C')
ans -= 2;
if (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')
ans -= 2;
}
else if (s.charAt(i) == 'V') {
if (s.charAt(i + 1) == 'X')
ans -= 10;
if (s.charAt(i + 1) == 'L' || s.charAt(i + 1) == 'C')
ans -= 10;
if (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')
ans -= 10;
}
else if (s.charAt(i) == 'X') {
if (s.charAt(i + 1) == 'L' || s.charAt(i + 1) == 'C')
ans -= 20;
if (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')
ans -= 20;
}
else if (s.charAt(i) == 'L') {
if (s.charAt(i + 1) == 'C')
ans -= 100;
if (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')
ans -= 100;
}
else if (s.charAt(i) == 'C') {
if (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')
ans -= 200;
}
else if (s.charAt(i) == 'D') {
if (s.charAt(i + 1) == 'M')
ans -= 1000;
}
}
return ans;
}

/*
Given an array nums of distinct integers, return all the possible permutations.
You can return the answer in any order.
*/

public List<List<Integer>> permute(int[] nums) {
// TODO
return null;
List<List<Integer>> ans = new ArrayList<List<Integer>>();
List<Integer> save = new ArrayList<Integer>();
save.add(nums[0]);
ans.add(save);
for (int i = 1; i < nums.length; i++) {
List<List<Integer>> save2 = new ArrayList<List<Integer>>();
for (int j = 0; j < ans.size(); j++) {
for (int k = 0; k <= i; k++) {
List<Integer> save4 = new ArrayList<Integer>();
for (int l = 0; l < k; l++)
save4.add(ans.get(j).get(l));
save4.add(nums[i]);
for (int l = k; l <= (i - 1); l++)
save4.add(ans.get(j).get(l));
save2.add(save4);
}
}
ans = save2;
}
return ans;
}

public static void main(String[] args) {
// test your code here!

}
}
}