class Solution { public boolean isToeplitzMatrix(int[][] matrix) { for ( int i = 1 ; i < matrix.length ; i++ ){ for ( int j = 1; j < matrix[i].length ; j++ ){ if ( matrix [i-1][j-1] != matrix[i][j]) return false; } } return true; } }
Monthly Archives: April 2018
Technology for your life
463. Island Perimeter
class Solution { public static int islandPerimeter(int[][] grid) { int perimeter = 0; for (int i = 0; i < grid.length; i++) { for (int j = 0; j < grid[i].length; j++) { if (grid[i][j] == 1) { if (i - 1 < 0 || grid[i - 1][j] == 0) perimeter++; if (j - 1 = grid.length || grid[i + 1][j] == 0) perimeter++; if (j + 1 >= grid[i].length || grid[i][j + 1] == 0) perimeter++; } } } return perimeter; } }
682. Baseball Game
class Solution { public int calPoints(String[] ops) { int currentSum = 0; ArrayList valid = new ArrayList(); for (int i = 0; i < ops.length; i++) { if (ops[i].equals("C")) { currentSum -= new Integer(valid.get(valid.size() - 1)); valid.remove(valid.size() - 1); } else if (ops[i].equals("D")) { int newScore = (2 * valid.get(valid.size() - 1)); currentSum += newScore; valid.add(newScore); } else if (ops[i].equals("+")) { int newScore = new Integer(valid.get(valid.size() - 1)) + new Integer((valid.get(valid.size() - 2))); currentSum += newScore; valid.add(newScore); } else { valid.add(new Integer(ops[i])); currentSum += new Integer(ops[i]); } } return currentSum; } }
500. Keyboard Row
class Solution { public static String[] findWords(String[] words) { String[] strs = { "QWERTYUIOP", "ASDFGHJKL", "ZXCVBNM" }; HashMap map = new HashMap(); for (int i = 0; i < strs.length; i++) { for (char c : strs[i].toCharArray()) { map.put(c, i);// put pair into the map } } ArrayList outArrList = new ArrayList(); for (int j = 0; j < words.length; j++) { HashSet row = new HashSet(); for (int i = 0; i < words[j].length(); i++) { Character current = words[j].charAt(i); row.add(map.get(Character.toUpperCase(current))); } if (row.size() == 1) outArrList.add(words[j]); } String[] out = new String[outArrList.size()]; for (int i = 0; i < out.length; i++) out[i] = outArrList.get(i); return out; } }
557. Reverse Words in a String III
557. Reverse Words in a String III
class Solution { public static String reversWord(String s) { return new StringBuffer(s).reverse().toString(); } public static String reverseWords(String s) { int endOfFirst = s.indexOf(" "); if (endOfFirst == -1) return reversWord(s); return reversWord(s.substring(0, endOfFirst)) + " " + reverseWords(s.substring(endOfFirst + 1)); } }
476. Number Complement
import java.math.BigInteger; class Solution { public int findComplement(int num) { String input = Integer.toBinaryString(num); StringBuilder outBuilder = new StringBuilder(); for (int i = 0; i < input.length(); i++) { if (input.charAt(i) == '0') outBuilder.append(1); else outBuilder.append(0); } BigInteger out = new BigInteger(outBuilder.toString(), 2); return out.intValue(); } }
زمزم الماء المبارك – وثائقى
771. Jewels and Stones
class Solution { public int numJewelsInStones(String J, String S) { int count = 0; for (int i = 0; i < S.length(); i++) for (int j = 0; j < J.length(); j++) if (S.charAt(i) == J.charAt(j)) count++; return count; } }
806. Number of Lines To Write String
806. Number of Lines To Write String
class Solution { public int[] numberOfLines(int[] widths, String S) { int currentChar = 0; if (S.length() == 0) return new int[]{0,0}; int lines = 1; for (int i = 0; i < S.length(); i++) { currentChar += widths[S.charAt(i) - 97]; if( currentChar > 100){ currentChar -= widths[S.charAt(i) - 97]; currentChar = widths[S.charAt(i) - 97]; lines++; }else if( currentChar == 99 && i < S.length() - 1 /*at least there is one following char*/){ currentChar = 0; lines++; } } return new int[] { lines, currentChar}; }}