↓ Skip to main content
  1. Posts/

leetcode 108. Convert Sorted Array to Binary Search Tree(有序数组转化成bst)

·365 words·1 min
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

leetcode108

题意:把一个有序的数组转化成一棵高度尽量小的bst(二叉搜索树)

思路:我竟然忘记了什么是bst……..我好傻啊…不过想想可能是因为…最朴素的二叉搜索树几乎用不到…所以很容易忘记吧2333

bst是 binary search tree的缩写..

具体见 维基百科_二叉搜索树

想起来概念就好搞了…直接递归建树即可…类似线段树的build的过程

 1/* ***********************************************
 2Author :111qqz
 3Created Time :2017年02月21日 星期二 13时08分04秒
 4File Name :108.cpp
 5************************************************ */
 6/**
 7
 8 * Definition for a binary tree node.
 9
10 * struct TreeNode {
11
12 *     int val;
13
14 *     TreeNode *left;
15
16 *     TreeNode *right;
17
18 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
19
20 * };
21
22 */
23
24class Solution {
25
26public:
27
28    TreeNode* dfs( int l,int r,vector<int>&nums)
29    {
30
31        int  n = r-l+1;
32        if (n<=0) return NULL;
33        int  m = n/2;
34        cout<<"l:"<<l<<" r:"<<r<<endl;
35        TreeNode* rt = new TreeNode(nums[l+m]);
36        rt->left = dfs(l,l+m-1,nums);
37        rt->right = dfs(l+m+1,r,nums);
38        return rt;
39    }
40
41
42    TreeNode* sortedArrayToBST(vector<int>& nums) {
43
44        int siz = nums.size();
45        if (siz==0) return NULL;
46         return dfs(0,siz-1,nums);
47    }
48
49};

Related

BZOJ 1800: [Ahoi2009]fly 飞行棋 (尺取+数学)

·693 words·2 mins
1800: [Ahoi2009]fly 飞行棋 # Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1530 Solved: 1220 [Submit][Status][Discuss] Description # 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列。 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形。

BZOJ 1207: [HNOI2004]打鼹鼠 (LIS)

·965 words·2 mins
1207: [HNOI2004]打鼹鼠 # Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2854 Solved: 1390 [Submit][Status][Discuss] Description # 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个nn的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果i时刻鼹鼠在某个网格中出现,而机器人也处于同一网格的话,那么这个鼹鼠就会被机器人打死。而机器人每一时刻只能够移动一格或停留在原地不动。机器人的移动是指从当前所处的网格移向相邻的网格,即从坐标为(i,j)的网格移向(i-1, j),(i+1, j),(i,j-1),(i,j+1)四个网格,机器人不能走出整个nn的网格。游戏开始时,你可以自由选定机器人的初始位置。现在你知道在一段时间内,鼹鼠出现的时间和地点,希望你编写一个程序使机器人在这一段时间内打死尽可能多的鼹鼠。

codeforces #382 div 2 E. Ostap and Tree (树形dp)

·698 words·2 mins
题目链接 题意:将一棵树的若干点染成黑色,要求满足对于任何一个点u,至少存在一个距离其k以内的点v被染成黑色,问染色方案数。 思路:还没完全搞懂。。。记录一些idea…