Bài đăng

Đang hiển thị bài đăng từ Tháng 11, 2020

Tháng này mình sẽ viết mọi thứ bằng python

Solution: Binary Tree Tilt

Hình ảnh
  Given the   root   of a binary tree, return   the sum of every tree node's  tilt . The  tilt  of a tree node is the  absolute difference  between the sum of all left subtree node  values  and all right subtree node  values . If a node does not have a left child, then the sum of the left subtree node  values  is treated as  0 . The rule is similar if there the node does not have a right child.   Example 1: Input: root = [1,2,3] Output: 1 Explanation: Tilt of node 2 : |0-0| = 0 (no children) Tilt of node 3 : |0-0| = 0 (no children) Tile of node 1 : |2-3| = 1 (left subtree is just left child, so sum is 2; right subtree is just right child, so sum is 3) Sum of every tilt : 0 + 0 + 1 = 1 Example 2: Input: root = [4,2,9,3,5,null,7] Output: 15 Explanation: Tilt of node 3 : |0-0| = 0 (no children) Tilt of node 5 : |0-0| = 0 (no children) Tilt of node 7 : |0-0| = 0 (no children) Tilt of node 2 : |3-5| = 2 (left subtree is just left child, so sum is 3; right subtree is just right c

Solution: Find the Smallest Divisor Given a Threshold

  Given an array of integers   nums   and an integer   threshold , we will choose a positive integer divisor and divide all the array by it and sum the result of the division. Find the   smallest   divisor such that the result mentioned above is less than or equal to   threshold . Each result of division is rounded to the nearest integer greater than or equal to that element. (For example: 7/3 = 3 and 10/2 = 5). It is guaranteed that there will be an answer.   Example 1: Input: nums = [1,2,5,9], threshold = 6 Output: 5 Explanation: We can get a sum to 17 (1+2+5+9) if the divisor is 1. If the divisor is 4 we can get a sum to 7 (1+1+2+3) and if the divisor is 5 the sum will be 5 (1+1+1+2). Example 2: Input: nums = [2,3,5,7,11], threshold = 11 Output: 3 Example 3: Input: nums = [19], threshold = 5 Output: 4   Constraints: 1 <= nums.length <= 5 * 10^4 1 <= nums[i] <= 10^6 nums.length <= threshold <= 10^6 . Solution: Chặt nhị phân trên đoạn [1,10e6]. Sourcecode:

Solution: Consecutive Character

  Given a string   s , the power of the string is the maximum length of a non-empty substring that contains only one unique character. Return  the power  of the string.   Example 1: Input: s = "leetcode" Output: 2 Explanation: The substring "ee" is of length 2 with the character 'e' only. Example 2: Input: s = "abbcccddddeeeeedcba" Output: 5 Explanation: The substring "eeeee" is of length 5 with the character 'e' only. Example 3: Input: s = "triplepillooooow" Output: 5 Example 4: Input: s = "hooraaaaaaaaaaay" Output: 11 Example 5: Input: s = "tourist" Output: 1   Constraints: 1 <= s.length <= 500 s  contains only lowercase English letters. . Gọi l là điểm đầu tiên của xâu bằng nhau, i là điểm hiện tại cuối cùng của xâu bằng nhau, vây i-l chính là độ dài sâu bằng nhau (bắt đầu từ 0). Giả sử với xâu: raaaay Ban đầu: i=0,l=0, chạy đến khi s[i] khác s[l], lúc này i=1, vậy độ dài xâu bằn

Solutions: Insertion Sort List

Hình ảnh
  Sort a linked list using insertion sort. A graphical example of insertion sort. The partial sorted list (black) initially contains only the first element in the list. With each iteration one element (red) is removed from the input data and inserted in-place into the sorted list   Algorithm of Insertion Sort: Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. At each iteration, insertion sort removes one element from the input data, finds the location it belongs within the sorted list, and inserts it there. It repeats until no input elements remain. Example 1: Input: 4->2->1->3 Output: 1->2->3->4 Example 2: Input: -1->5->3->4->0 Output: -1->0->3->4->5 . Bài toán này mình không tự tin dùng con trỏ trên C++ nên mình sẽ code bằng Java cho đỡ bị lỗi hơn. Thuật toán sắp xếp chọn là những thuật toán đầu tiên được tiếp cận sau sắp xếp nổi bọt và sắp xếp chọn, ý tưởng ban đầu là mặc định dãy đư

Solution: Convert Binary Number in a Linked List to Integer

Hình ảnh
  Given   head   which is a reference node to a singly-linked list. The value of each node in the linked list is either 0 or 1. The linked list holds the binary representation of a number. Return the  decimal value  of the number in the linked list.   Example 1: Input: head = [1,0,1] Output: 5 Explanation: (101) in base 2 = (5) in base 10 Example 2: Input: head = [0] Output: 0 Example 3: Input: head = [1] Output: 1 Example 4: Input: head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0] Output: 18880 Example 5: Input: head = [0,0] Output: 0   Constraints: The Linked List is not empty. Number of nodes will not exceed  30 . Each node's value is either  0  or  1 . Solution:  Đây là một bài toán tầm thường nhìn là biết kết quả chỉ cần thấy 1 nhân 2 rồi cộng với giá trị của bit hiện tại. Nhưng có một cách hay hơn là dùng bitwise với 2 toán tử << và |. Tính chất của hai cái này tương tự như đã nói ở trên, << tương đương với nhân 2, còn | thì nó sẽ + 1 nếu là 1 và + 0 nếu là 0. ví