Bài đăng
Đang hiển thị bài đăng từ Tháng 11, 2020
Solution: Binary Tree Tilt
- Nhận đường liên kết
- X
- Ứng dụng khác
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
- Nhận đường liên kết
- X
- Ứng dụng khác
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
- Nhận đường liên kết
- X
- Ứng dụng khác
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
- Nhận đường liên kết
- X
- Ứng dụng khác
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
- Nhận đường liên kết
- X
- Ứng dụng khác
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í