Why my code doesn't work

  • 0

    My idea is to save the remain numbers of spaces in the current column into a HashMap, so that every time we meet the same situation, we can check with the hashmap.

    The case ["a"] 10000, 10000 always give me Time Exceed Limitation. Can anyone provide any suggestion on how to optimize it? Thanks in advance!!

    public class Solution {
        public int wordsTyping(String[] sentence, int rows, int cols) {
            if(sentence==null || sentence.length==0) return -1;
            if(rows<=0 || cols<=0) return -1;
            int maxCapacity = rows*cols;
            HashMap<Integer, Integer> nextPosition = new HashMap<Integer, Integer>();
            int idx = 0;//current position 
            int remain = cols;//remain how many spaces remain in current col
            int time = 0;
                int start = remain;//record current remain;
                int startPosi = idx;
                int idxj = 0;
                    idx += nextPosition.get(start);
                    remain = cols - idx%cols;
                while(idxj < sentence.length){
                    int strLen = sentence[idxj].length();
                    if(remain == strLen){
                        remain = cols;
                        idx += strLen;
                    }else if(remain > strLen){
                        remain = remain - strLen-1;
                        idx += strLen+1;
                        idx += remain;
                        remain = cols;
                int difference = idx - startPosi;
                nextPosition.put(start, difference);
            return time-1;

Log in to reply

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.