国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

字節(jié)跳動(dòng)高頻題目(1)

這篇具有很好參考價(jià)值的文章主要介紹了字節(jié)跳動(dòng)高頻題目(1)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

?3,1,42,200,15

121,128,49,25,88

5,146,70,2,4

21,33,55,27,560

11,20,31,53,236

300,26,215,279,438

135,148,9,169,76

22,101,14,54,56

72,206,152,80,39

46,62,104,122,179

3. Longest Substring Without Repeating Characters

Medium

Given a string?s, find the length of the?longest?substring?without repeating characters.

Example 1:

Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.
class Solution {
    public int lengthOfLongestSubstring(String s) {
        Set<Character> set = new HashSet<>();
        char[] ch = s.toCharArray();
        int left = 0;
        int count = 0;
        int ans = 0;
        for(int right = 0; right < ch.length; right++){
            if(!set.contains(ch[right])){
                set.add(ch[right]);
                count = count + 1;
                ans = Math.max(ans, count);
            }else{
                while(set.contains(ch[right])){
                    set.remove(ch[left]);
                    left++;
                    count--;
                }
                set.add(ch[right]);
                count++;
            }
        }
        return ans;
    }
}
class Solution {
    public int lengthOfLongestSubstring(String s) {
        int[] ch = new int[128];
        for(int i=0;i<128;i++){
            ch[i]=-1;
        }
        int ans=0;
        int st=0;
        for(int i=0;i<s.length();i++){
            int c = s.charAt(i);
            if(ch[c]!=-1){
                st=Math.max(st,ch[c]);
            }
            ans=Math.max(ans,i-st+1);
            ch[c]=i+1;
        }
        return ans;
    }
}

1. Two Sum

Easy

Given an array of integers?nums?and an integer?target, return?indices of the two numbers such that they add up to?target.

You may assume that each input would have?exactly?one solution, and you may not use the?same?element twice.

You can return the answer in any order.

class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>();
        for (int i = 0; i < nums.length; ++i) {
            if (hashtable.containsKey(target - nums[i])) {
                return new int[]{hashtable.get(target - nums[i]), i};
            }
            hashtable.put(nums[i], i);
        }
        return new int[0];
    }
}

42. Trapping Rain Water

Hard

Given?n?non-negative integers representing an elevation map where the width of each bar is?1, compute how much water it can trap after raining.

class Solution {
    public int trap(int[] height) {
        int ans = 0;
        int left = 0, right = height.length - 1;
        int leftMax = 0, rightMax = 0;
        while (left < right) {
            leftMax = Math.max(leftMax, height[left]);
            rightMax = Math.max(rightMax, height[right]);
            if (height[left] < height[right]) {
                ans += leftMax - height[left];
                ++left;
            } else {
                ans += rightMax - height[right];
                --right;
            }
        }
        return ans;
    }
}

200. Number of Islands

Medium

Given an?m x n?2D binary grid?grid?which represents a map of?'1's (land) and?'0's (water), return?the number of islands.

An?island?is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.

class Solution {
    void dfs(char[][] grid, int r, int c) {
        int nr = grid.length;
        int nc = grid[0].length;

        if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0') {
            return;
        }

        grid[r][c] = '0';
        dfs(grid, r - 1, c);
        dfs(grid, r + 1, c);
        dfs(grid, r, c - 1);
        dfs(grid, r, c + 1);
    }

    public int numIslands(char[][] grid) {
        if (grid == null || grid.length == 0) {
            return 0;
        }

        int nr = grid.length;
        int nc = grid[0].length;
        int num_islands = 0;
        for (int r = 0; r < nr; ++r) {
            for (int c = 0; c < nc; ++c) {
                if (grid[r][c] == '1') {
                    ++num_islands;
                    dfs(grid, r, c);
                }
            }
        }

        return num_islands;
    }
}

15. 3Sum

Medium

Given an integer array nums, return all the triplets?[nums[i], nums[j], nums[k]]?such that?i != j,?i != k, and?j != k, and?nums[i] + nums[j] + nums[k] == 0.

Notice that the solution set must not contain duplicate triplets.

class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        List<List<Integer>> ans = new ArrayList<>();
        Arrays.sort(nums);
        for(int i = 0; i < nums.length-2; i++){
            if(nums[i] + nums[i + 1] + nums[i + 2] > 0){
                break;
            }
            if(nums[i] + nums[nums.length - 1] + nums[nums.length -2] < 0){
                continue;
            }
            if(i > 0 && nums[i] == nums[i - 1]){
                continue;
            }
            int j = i + 1;
            int k = nums.length - 1;
            while(j < k){
                if(nums[i] + nums[j] + nums[k] > 0){
                    k--;
                }else if(nums[i] + nums[j] + nums[k] < 0){
                    j++;
                }else{
                    List<Integer> list = new ArrayList<>();
                    list.add(nums[i]);
                    list.add(nums[j]);
                    list.add(nums[k]);
                    ans.add(list);
                    j++;
                    k--;
                    while(j < k && nums[j] == nums[j -1]){
                        j++;
                    }
                    while(j < k && nums[k] == nums[k + 1]){
                        k--;
                    }
                }
            }
        }
        return ans;
    }
}

121. Best Time to Buy and Sell Stock

Easy

You are given an array?prices?where?prices[i]?is the price of a given stock on the?ith?day.

You want to maximize your profit by choosing a?single day?to buy one stock and choosing a?different day in the future?to sell that stock.

Return?the maximum profit you can achieve from this transaction. If you cannot achieve any profit, return?0.

Example 1:

Input: prices = [7,1,5,3,6,4]
Output: 5
Explanation: Buy on day 2 (price = 1) and sell on day 5 (price = 6), profit = 6-1 = 5.
Note that buying on day 2 and selling on day 1 is not allowed because you must buy before you sell.
class Solution {
    public int maxProfit(int[] prices) {
        if (prices.length == 1) {
            return 0;
        }
        int[][] dp = new int[prices.length][2];//dp[i][0]表示第i天持有股票的最大收益,dp[i][1]表示第i天不持有股票的最大收益
        dp[0][0] = -prices[0];
        dp[0][1] = 0;
        for (int i = 1; i < prices.length; i++) {
            dp[i][0] = Math.max(dp[i - 1][0],  -prices[i]);//分為是不是今天買(mǎi)入
            dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] + prices[i]);//分為是不是今天買(mǎi)
        }
        return dp[prices.length - 1][1];
    }
}
class Solution {
    public int maxProfit(int[] prices) {
        int cost = Integer.MAX_VALUE, profit = 0;
        for (int price : prices) {
            cost = Math.min(cost, price);
            profit = Math.max(profit, price - cost);
        }
        return profit;
    }
}

128. Longest Consecutive Sequence

Medium

Given an unsorted array of integers?nums, return?the length of the longest consecutive elements sequence.

You must write an algorithm that runs in?O(n)?time.

Example 1:

Input: nums = [100,4,200,1,3,2]
Output: 4
Explanation: The longest consecutive elements sequence is [1, 2, 3, 4]. Therefore its length is 4.

?

class Solution {
    public int longestConsecutive(int[] nums) {
        Set<Integer> numSet = new HashSet<Integer>();
        for (int num : nums) {
            numSet.add(num);
        }

        int longestLength = 0;

        for (int num : numSet) {
            if (!numSet.contains(num - 1)) {
                int currentNum = num;
                int currentLength = 1;

                while (numSet.contains(currentNum + 1)) {
                    currentNum += 1;
                    currentLength += 1;
                }
                longestLength = Math.max(longestLength, currentLength);
            }
        }

        return longestLength;
    }
}

49. Group Anagrams

Solved

Medium

Topics

Companies

Given an array of strings?strs, group?the anagrams?together. You can return the answer in?any order.

An?Anagram?is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.

?

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        for (String str : strs) {
            char[] array = str.toCharArray();
            Arrays.sort(array);
            String key = new String(array);
            List<String> list = map.getOrDefault(key, new ArrayList<String>());
            list.add(str);
            map.put(key, list);
        }
        return new ArrayList<List<String>>(map.values());
    }
}
class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        for (String str : strs) {
            int[] counts = new int[26];
            int length = str.length();
            for (int i = 0; i < length; i++) {
                counts[str.charAt(i) - 'a']++;
            }
            // 將每個(gè)出現(xiàn)次數(shù)大于 0 的字母和出現(xiàn)次數(shù)按順序拼接成字符串,作為哈希表的鍵
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < 26; i++) {
                if (counts[i] != 0) {
                    sb.append((char) ('a' + i));
                    sb.append(counts[i]);
                }
            }
            String key = sb.toString();
            List<String> list = map.getOrDefault(key, new ArrayList<String>());
            list.add(str);
            map.put(key, list);
        }
        return new ArrayList<List<String>>(map.values());
    }
}

?

25. Reverse Nodes in k-Group

Hard

Topics

Companies

Given the?head?of a linked list, reverse the nodes of the list?k?at a time, and return?the modified list.

k?is a positive integer and is less than or equal to the length of the linked list. If the number of nodes is not a multiple of?k?then left-out nodes, in the end, should remain as it is.

You may not alter the values in the list's nodes, only nodes themselves may be changed.

class Solution {
    public ListNode reverseKGroup(ListNode head, int k) {
        ListNode hair = new ListNode(0);
        hair.next = head;
        ListNode pre = hair;

        while (head != null) {
            ListNode tail = pre;
            // 查看剩余部分長(zhǎng)度是否大于等于 k
            for (int i = 0; i < k; ++i) {
                tail = tail.next;
                if (tail == null) {
                    return hair.next;
                }
            }
            ListNode nex = tail.next;
            ListNode[] reverse = myReverse(head, tail);
            head = reverse[0];
            tail = reverse[1];
            // 把子鏈表重新接回原鏈表
            pre.next = head;
            tail.next = nex;
            pre = tail;
            head = tail.next;
        }

        return hair.next;
    }

    public ListNode[] myReverse(ListNode head, ListNode tail) {
        ListNode prev = tail.next;
        ListNode p = head;
        while (prev != tail) {
            ListNode nex = p.next;
            p.next = prev;
            prev = p;
            p = nex;
        }
        return new ListNode[]{tail, head};
    }
}

?

88. Merge Sorted Array

Easy

You are given two integer arrays?nums1?and?nums2, sorted in?non-decreasing order, and two integers?m?and?n, representing the number of elements in?nums1?and?nums2?respectively.

Merge?nums1?and?nums2?into a single array sorted in?non-decreasing order.

The final sorted array should not be returned by the function, but instead be?stored inside the array?nums1. To accommodate this,?nums1?has a length of?m + n, where the first?m?elements denote the elements that should be merged, and the last?n?elements are set to?0?and should be ignored.?nums2?has a length of?n.

Example 1:

Input: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
Output: [1,2,2,3,5,6]
Explanation: The arrays we are merging are [1,2,3] and [2,5,6].
The result of the merge is [1,2,2,3,5,6] with the underlined elements coming from nums1.
class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int p1 = 0, p2 = 0;
        int[] sorted = new int[m + n];
        int cur;
        while (p1 < m || p2 < n) {
            if (p1 == m) {
                cur = nums2[p2++];
            } else if (p2 == n) {
                cur = nums1[p1++];
            } else if (nums1[p1] < nums2[p2]) {
                cur = nums1[p1++];
            } else {
                cur = nums2[p2++];
            }
            sorted[p1 + p2 - 1] = cur;
        }
        for (int i = 0; i != m + n; ++i) {
            nums1[i] = sorted[i];
        }
    }
}

?

5. Longest Palindromic Substring

Medium

Given a string?s, return?the longest?

palindromic substring?in?s.

class Solution {
    public String longestPalindrome(String s) {
        if (s == null || s.length() < 1) {
            return "";
        }
        int start = 0, end = 0;
        for (int i = 0; i < s.length(); i++) {
            int len1 = expandAroundCenter(s, i, i);
            int len2 = expandAroundCenter(s, i, i + 1);
            int len = Math.max(len1, len2);
            if (len > end - start) {
                start = i - (len - 1) / 2;
                end = i + len / 2;
            }
        }
        return s.substring(start, end + 1);
    }

    public int expandAroundCenter(String s, int left, int right) {
        while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
            --left;
            ++right;
        }
        return right - left - 1;
    }
}

146. LRU Cache

Medium

Topics

Companies

Design a data structure that follows the constraints of a?Least Recently Used (LRU) cache.

Implement the?LRUCache?class:

  • LRUCache(int capacity)?Initialize the LRU cache with?positive?size?capacity.
  • int get(int key)?Return the value of the?key?if the key exists, otherwise return?-1.
  • void put(int key, int value)?Update the value of the?key?if the?key?exists. Otherwise, add the?key-value?pair to the cache. If the number of keys exceeds the?capacity?from this operation,?evict?the least recently used key.

The functions?get?and?put?must each run in?O(1)?average time complexity.

class LRUCache {
    class Node{
        int key;
        int value;

        Node prev;
        Node next;

        Node(int key, int value){
            this.key= key;
            this.value= value;
        }
    }

    public Node[] map;
    public int count, capacity;
    public Node head, tail;
    
    public LRUCache(int capacity) {
        
        this.capacity= capacity;
        count= 0;
        
        map= new Node[10_000+1];
        
        head= new Node(0,0);
        tail= new Node(0,0);
        
        head.next= tail;
        tail.prev= head;
        
        head.prev= null;
        tail.next= null;
    }
    
    public void deleteNode(Node node){
        node.prev.next= node.next;
        node.next.prev= node.prev;       
        
        return;
    }
    
    public void addToHead(Node node){
        node.next= head.next;
        node.next.prev= node;
        node.prev= head;
        
        head.next= node;      
        
        return;
    }
    
    public int get(int key) {
        
        if( map[key] != null ){
            
            Node node= map[key];
            
            int nodeVal= node.value;
            
            deleteNode(node);
            
            addToHead(node);
            
            return nodeVal;
        }
        else
            return -1;
    }
    
    public void put(int key, int value) {
        
        if(map[key] != null){
            
            Node node= map[key];
            
            node.value= value;
            
            deleteNode(node);
            
            addToHead(node);
            
        } else {
            
            Node node= new Node(key,value);
            
            map[key]= node;
            
            if(count < capacity){
                count++;
                addToHead(node);
            } 
            else {
                
                map[tail.prev.key]= null;
                deleteNode(tail.prev);
                
                addToHead(node);
            }
        }
        
        return;
    }
    
}
public class LRUCache {
    class DLinkedNode {
        int key;
        int value;
        DLinkedNode prev;
        DLinkedNode next;
        public DLinkedNode() {}
        public DLinkedNode(int _key, int _value) {key = _key; value = _value;}
    }

    private Map<Integer, DLinkedNode> cache = new HashMap<Integer, DLinkedNode>();
    private int size;
    private int capacity;
    private DLinkedNode head, tail;

    public LRUCache(int capacity) {
        this.size = 0;
        this.capacity = capacity;
        // 使用偽頭部和偽尾部節(jié)點(diǎn)
        head = new DLinkedNode();
        tail = new DLinkedNode();
        head.next = tail;
        tail.prev = head;
    }

    public int get(int key) {
        DLinkedNode node = cache.get(key);
        if (node == null) {
            return -1;
        }
        // 如果 key 存在,先通過(guò)哈希表定位,再移到頭部
        moveToHead(node);
        return node.value;
    }

    public void put(int key, int value) {
        DLinkedNode node = cache.get(key);
        if (node == null) {
            // 如果 key 不存在,創(chuàng)建一個(gè)新的節(jié)點(diǎn)
            DLinkedNode newNode = new DLinkedNode(key, value);
            // 添加進(jìn)哈希表
            cache.put(key, newNode);
            // 添加至雙向鏈表的頭部
            addToHead(newNode);
            ++size;
            if (size > capacity) {
                // 如果超出容量,刪除雙向鏈表的尾部節(jié)點(diǎn)
                DLinkedNode tail = removeTail();
                // 刪除哈希表中對(duì)應(yīng)的項(xiàng)
                cache.remove(tail.key);
                --size;
            }
        }
        else {
            // 如果 key 存在,先通過(guò)哈希表定位,再修改 value,并移到頭部
            node.value = value;
            moveToHead(node);
        }
    }

    private void addToHead(DLinkedNode node) {
        node.prev = head;
        node.next = head.next;
        head.next.prev = node;
        head.next = node;
    }

    private void removeNode(DLinkedNode node) {
        node.prev.next = node.next;
        node.next.prev = node.prev;
    }

    private void moveToHead(DLinkedNode node) {
        removeNode(node);
        addToHead(node);
    }

    private DLinkedNode removeTail() {
        DLinkedNode res = tail.prev;
        removeNode(res);
        return res;
    }
}

?

22. Generate Parentheses

Medium

Given?n?pairs of parentheses, write a function to?generate all combinations of well-formed parentheses.

class Solution {
    public List<String> generateParenthesis(int n) {
        List<String> ans = new ArrayList<String>();
        backtrack(ans, new StringBuilder(), 0, 0, n);
        return ans;
    }

    public void backtrack(List<String> ans, StringBuilder cur, int open, int close, int max) {
        if (cur.length() == max * 2) {
            ans.add(cur.toString());
            return;
        }
        if (open < max) {
            cur.append('(');
            backtrack(ans, cur, open + 1, close, max);
            cur.deleteCharAt(cur.length() - 1);
        }
        if (close < open) {
            cur.append(')');
            backtrack(ans, cur, open, close + 1, max);
            cur.deleteCharAt(cur.length() - 1);
        }
    }
}

101. Symmetric Tree

Easy

Given the?root?of a binary tree,?check whether it is a mirror of itself?(i.e., symmetric around its center).

class Solution {
    public boolean isSymmetric(TreeNode root) {
        return compare(root.left, root.right);
    }

    private boolean compare(TreeNode left, TreeNode right) {
        if (left == null && right == null) {
            return true;
        }
        if (left == null || right == null) {
            return false;
        }
        if (left.val != right.val) {
            return false;
        }
        return compare(left.right, right.left) && compare(left.left, right.right);
    }
}

14. Longest Common Prefix

Easy

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string?"".文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-861150.html

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) {
            return "";
        }
        String prefix = strs[0];
        int count = strs.length;
        for (int i = 1; i < count; i++) {
            prefix = longestCommonPrefix(prefix, strs[i]);
            if (prefix.length() == 0) {
                break;
            }
        }
        return prefix;
    }

    public String longestCommonPrefix(String str1, String str2) {
        int length = Math.min(str1.length(), str2.length());
        int index = 0;
        while (index < length && str1.charAt(index) == str2.charAt(index)) {
            index++;
        }
        return str1.substring(0, index);
    }
}

到了這里,關(guān)于字節(jié)跳動(dòng)高頻題目(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 分享一道字節(jié)跳動(dòng)后端面試算法題

    題目: 給你一個(gè)字符串s,可以將任意一個(gè)字符轉(zhuǎn)為任意一個(gè)小寫(xiě)字符,這個(gè)操作可有m次,問(wèn)轉(zhuǎn)化后的字符串中最長(zhǎng)的相等子串長(zhǎng)度。 案例: s=\\\"abcdac\\\" ,m=2,2次操作,可以轉(zhuǎn)化為\\\"abcccc\\\" ,最長(zhǎng)是4,返回4。 分析: 題目很好理解,但是如果對(duì)算法掌握不是很透徹或者是對(duì)滑動(dòng)

    2024年02月16日
    瀏覽(19)
  • 【Java程序員面試專(zhuān)欄 數(shù)據(jù)結(jié)構(gòu)】四 高頻面試算法題:哈希表

    【Java程序員面試專(zhuān)欄 數(shù)據(jù)結(jié)構(gòu)】四 高頻面試算法題:哈希表

    一輪的算法訓(xùn)練完成后,對(duì)相關(guān)的題目有了一個(gè)初步理解了,接下來(lái)進(jìn)行專(zhuān)題訓(xùn)練,以下這些題目就是匯總的高頻題目,一個(gè)O(1)查找的利器哈希表,所以放到一篇Blog中集中練習(xí) 題目 解題思路 時(shí)間 空間 兩數(shù)之和 輔助哈希 使用map存儲(chǔ)出現(xiàn)過(guò)的值,key為值大小,v

    2024年02月22日
    瀏覽(29)
  • 字節(jié)跳動(dòng)大數(shù)據(jù)容器化構(gòu)建與落地實(shí)踐

    字節(jié)跳動(dòng)大數(shù)據(jù)容器化構(gòu)建與落地實(shí)踐

    動(dòng)手點(diǎn)關(guān)注 干貨不迷路 隨著字節(jié)跳動(dòng)旗下業(yè)務(wù)的快速發(fā)展,數(shù)據(jù)急劇膨脹,原有的大數(shù)據(jù)架構(gòu)在面臨日趨復(fù)雜的業(yè)務(wù)需求時(shí)逐漸顯現(xiàn)疲態(tài)。而伴隨著大數(shù)據(jù)架構(gòu)向云原生演進(jìn)的行業(yè)趨勢(shì),字節(jié)跳動(dòng)也對(duì)大數(shù)據(jù)體系進(jìn)行了云原生改造。本文將詳細(xì)介紹字節(jié)跳動(dòng)大數(shù)據(jù)容器化的

    2024年02月13日
    瀏覽(20)
  • 字節(jié)跳動(dòng)開(kāi)源其云原生數(shù)據(jù)倉(cāng)庫(kù) ByConity

    字節(jié)跳動(dòng)開(kāi)源其云原生數(shù)據(jù)倉(cāng)庫(kù) ByConity

    動(dòng)手點(diǎn)關(guān)注 干貨不迷路 ? ByConity 是字節(jié)跳動(dòng)開(kāi)源的云原生數(shù)據(jù)倉(cāng)庫(kù),它采用計(jì)算-存儲(chǔ)分離的架構(gòu),支持多個(gè)關(guān)鍵功能特性,如計(jì)算存儲(chǔ)分離、彈性擴(kuò)縮容、租戶(hù)資源隔離和數(shù)據(jù)讀寫(xiě)的強(qiáng)一致性等。通過(guò)利用主流的 OLAP 引擎優(yōu)化,如列存儲(chǔ)、向量化執(zhí)行、MPP 執(zhí)行、查詢(xún)優(yōu)化

    2024年02月10日
    瀏覽(19)
  • 字節(jié)跳動(dòng)云原生大數(shù)據(jù)平臺(tái)運(yùn)維管理實(shí)踐

    字節(jié)跳動(dòng)云原生大數(shù)據(jù)平臺(tái)運(yùn)維管理實(shí)踐

    云原生大數(shù)據(jù)是大數(shù)據(jù)平臺(tái)新一代架構(gòu)和運(yùn)行形態(tài)。隨著字節(jié)跳動(dòng)內(nèi)部業(yè)務(wù)的快速增長(zhǎng),傳統(tǒng)大數(shù)據(jù)運(yùn)維平臺(tái)的劣勢(shì)開(kāi)始逐漸暴露,如組件繁多,安裝運(yùn)維復(fù)雜,與底層環(huán)境過(guò)度耦合;對(duì)業(yè)務(wù)方來(lái)說(shuō)缺少開(kāi)箱即用的日志、監(jiān)控、告警功能等。在此背景下,我們進(jìn)行了一系列云

    2024年02月11日
    瀏覽(22)
  • 字節(jié)跳動(dòng)AB實(shí)驗(yàn)經(jīng)驗(yàn)分享:企業(yè)如何構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的實(shí)驗(yàn)文化?

    更多技術(shù)交流、求職機(jī)會(huì),歡迎關(guān)注字節(jié)跳動(dòng)數(shù)據(jù)平臺(tái)微信公眾號(hào),回復(fù)【1】進(jìn)入官方交流群 近日,CCF TF 舉辦了第 123 期分享活動(dòng),本期主題為“用戶(hù)體驗(yàn)工程”。 CCF TF 是中國(guó)計(jì)算機(jī)學(xué)會(huì)為企業(yè)界計(jì)算機(jī)專(zhuān)業(yè)人士創(chuàng)建的企業(yè)間常態(tài)化合作交流平臺(tái),本期分享邀請(qǐng)到了來(lái)自火

    2024年02月05日
    瀏覽(13)
  • 火山引擎 DataLeap:揭秘字節(jié)跳動(dòng)業(yè)務(wù)背后的分布式數(shù)據(jù)治理思路

    火山引擎 DataLeap:揭秘字節(jié)跳動(dòng)業(yè)務(wù)背后的分布式數(shù)據(jù)治理思路

    動(dòng)手點(diǎn)關(guān)注 干貨不迷路 導(dǎo)讀:經(jīng)過(guò)十多年的發(fā)展, 數(shù)據(jù)治理 在傳統(tǒng)行業(yè)以及新興互聯(lián)網(wǎng)公司都已經(jīng)產(chǎn)生落地實(shí)踐。字節(jié)跳動(dòng)也在探索一種分布式的數(shù)據(jù)治理方式。本篇內(nèi)容來(lái)源于 火山引擎 超話(huà)數(shù)據(jù)直播活動(dòng)的回顧,將從以下四個(gè)部分展開(kāi)分享: 字節(jié)的挑戰(zhàn)與實(shí)踐 數(shù)據(jù)治

    2023年04月10日
    瀏覽(16)
  • 字節(jié)跳動(dòng) EB 級(jí) Iceberg 數(shù)據(jù)湖的機(jī)器學(xué)習(xí)應(yīng)用與優(yōu)化

    字節(jié)跳動(dòng) EB 級(jí) Iceberg 數(shù)據(jù)湖的機(jī)器學(xué)習(xí)應(yīng)用與優(yōu)化

    深度學(xué)習(xí)的模型規(guī)模越來(lái)越龐大,其訓(xùn)練數(shù)據(jù)量級(jí)也成倍增長(zhǎng),這對(duì)海量訓(xùn)練數(shù)據(jù)的存儲(chǔ)方案也提出了更高的要求:怎樣更高性能地讀取訓(xùn)練樣本、不使數(shù)據(jù)讀取成為模型訓(xùn)練的瓶頸,怎樣更高效地支持特征工程、更便捷地增刪和回填特征。本文將介紹字節(jié)跳動(dòng)如何通過(guò) Ic

    2024年02月15日
    瀏覽(17)
  • 演講預(yù)告|字節(jié)跳動(dòng)云原生大數(shù)據(jù)發(fā)展、AIGC 新引擎、運(yùn)維管理實(shí)踐

    演講預(yù)告|字節(jié)跳動(dòng)云原生大數(shù)據(jù)發(fā)展、AIGC 新引擎、運(yùn)維管理實(shí)踐

    出品人:李亞坤|火山引擎云原生計(jì)算技術(shù)負(fù)責(zé)人 專(zhuān)題簡(jiǎn)介: 大數(shù)據(jù)已成為企業(yè)數(shù)字化轉(zhuǎn)型中, 支撐企業(yè)經(jīng)營(yíng)和業(yè)績(jī)?cè)鲩L(zhǎng)的主要手段之一。通過(guò)升級(jí)云原生架構(gòu),可以為大數(shù)據(jù)在彈性、多租戶(hù)、敏捷開(kāi)發(fā)、降本增效、安全合規(guī)、容災(zāi)和資源調(diào)度等方向上帶來(lái)優(yōu)勢(shì)。傳統(tǒng)的大數(shù)

    2024年02月11日
    瀏覽(56)
  • 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目——鏈表綜合算法設(shè)計(jì)、帶頭雙向循環(huán)鏈表、插入、顯示、刪除、修改、排序

    數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目——鏈表綜合算法設(shè)計(jì)、帶頭雙向循環(huán)鏈表、插入、顯示、刪除、修改、排序

    ??課程設(shè)計(jì)題目1–鏈表綜合算法設(shè)計(jì) ??一、設(shè)計(jì)內(nèi)容 ??已知簡(jiǎn)單的人事信息系統(tǒng)中職工記錄包含職工編號(hào)(no)、職工姓名(name)、部門(mén)名稱(chēng)(depname)、職稱(chēng)(title)和工資數(shù)(salary)等信息(可以增加其他信息),設(shè)計(jì)并完成一個(gè)簡(jiǎn)單的人事信息管理系統(tǒng),要求完成但不

    2024年02月08日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包