leetcode C#刷題2

面試題 01.06. 字符串壓縮

//循環(huán)求解
char[] strs = S.ToCharArray();
            string newstr = "";
            int n = 1;
            if(S.Length==1){
                return S;
            }
            for (int i = 0, j = 1; i < S.Length - 1; i++,j++) {
                if (strs[i] == strs[j])
                {
                    n++;
                }
                else {
                    newstr = newstr + strs[i] + n.ToString();
                    n = 1;
                }
                if(j==S.Length-1){
                    newstr = newstr + strs[j] + n.ToString();
                }
            }
            if(newstr.Length >= S.Length)
            {
                return S;
            }

            return newstr;

面試題 01.09. 字符串輪轉(zhuǎn)

//S1+S1 字符串中包含 S2
public bool IsFlipedString(string s1, string s2)
{
if (s1.Length != s2.Length)
                return false;
            string str = s1 + s1;
            return str.Contains(s2);
}

面試題 01.07. 旋轉(zhuǎn)矩陣

// 向左右翻轉(zhuǎn) ,再對(duì)角線翻轉(zhuǎn)
public void Rotate(int[][] matrix) {
                int n = matrix.Length;
                int m = matrix[0].Length;

                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < m / 2; j++)
                    {
                        int tmp = matrix[i][j];
                        matrix[i][j] = matrix[i][n - 1 - j];
                        matrix[i][n - 1 - j] = tmp;
                    }
                }

                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < i; j++)
                    {
                        int tmp = matrix[i][j];
                        matrix[i][j] = matrix[j][i];
                        matrix[j][i] = tmp;
                    }
                }        
    }

面試題 01.08. 零矩陣

//將行 和 列 存到Set  中
public void SetZeroes(int[][] matrix)
        {
            int n = matrix.Length;
            int m = matrix[0].Length;
            HashSet<int> rows = new HashSet<int>();
            HashSet<int> cols = new HashSet<int>();
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    if (matrix[i][j] == 0)
                    {
                        rows.Add(i);
                        cols.Add(j);
                    }
                }
            }
            for (int i = 0; i < m; i++)
            {
                foreach (int rowIndex in rows)
                {
                    matrix[rowIndex][i] = 0;
                }
            }

            for (int i = 0; i < n; i++)
            {
                foreach (int colIndex in cols)
                {
                    matrix[i][colIndex] = 0;
                }
            }
        }

面試題 02.01. 移除重復(fù)節(jié)點(diǎn)

//是否重復(fù)用HashSet 來(lái)判斷
//  ListNode header = new ListNode(-1);
        //     header.next = head;
        //     ListNode current = header;
        //     HashSet<int> Hset = new HashSet<int>();
        //     while (current.next != null)
        //     {
        //         if (!Hset.Add(current.next.val))
        //         {
        //             current.next = current.next.next;
        //         }
        //         else
        //         {
        //             current = current.next;
        //         }
        //     }
        //     return header.next;

         if (head == null || head.next == null) return head;
            HashSet<int> Hset = new HashSet<int>();
            var curr = head;
            Hset.Add(curr.val);
            while (curr != null && curr.next != null)
            {
                if (!Hset.Add(curr.next.val))
                {
                    curr.next = curr.next.next;
                }
                else
                {
                    curr = curr.next;
                }
            }

            return head;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容