小编Ole*_*aKL的帖子

完美平衡的二进制搜索树

我有一个理论问题Balanced BST.

我想构建Perfect Balanced Tree具有2^k - 1节点的节点unbalanced BST.我能想到的最简单的解决方案是使用排序Array/Linked list并递归地将数组划分为子数组,并Perfect Balanced BST从中构建.

但是,在树大小非常大的情况下,我需要创建一个Array/List相同大小的内容,因此这种方法会占用大量内存.

另一种选择是使用AVL旋转功能,逐个元素插入并根据树平衡因子平衡树和旋转 - 左侧和右侧子树的三个高度.

我的问题是,我对我的假设是对的吗?还有其他方法可以BST从不平衡中创造完美BST吗?

c algorithm linked-list avl-tree binary-search-tree

8
推荐指数
1
解决办法
2538
查看次数

如何使用位操作来替换modulu和除法运算符?

我有这行代码:

 base_num = (arr[j]/base)%256;
Run Code Online (Sandbox Code Playgroud)

该行在循环中运行,操作"/"和"%"需要大量资源和时间来执行.我想更改此行并应用位操作以最大化程序性能.我怎样才能做到这一点?

谢谢.

c c++ module bit-manipulation division

6
推荐指数
1
解决办法
608
查看次数

检测电池充电Android

我以编程方式拒绝来电."呼叫拒绝"和"sendSMS"工作正常,但我想仅在手机处于充电模式时拒绝接听电话.

我正在尝试实现以下代码:

  case TelephonyManager.CALL_STATE_RINGING:

        if (isCharging())
        {
            reject();
            sendSMS(incomingNumber);
        } 

  break;
Run Code Online (Sandbox Code Playgroud)

isCharging:

public boolean isCharging()
{
    IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    Intent batteryStatus = contextMember.registerReceiver(null, ifilter);
    int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
    boolean bCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
                         status == BatteryManager.BATTERY_STATUS_FULL;
    return bCharging;
}
Run Code Online (Sandbox Code Playgroud)

但该应用程序不断打击来电.

请帮我解决这个问题!

我在LogCat上收到以下错误:

  E/AndroidRuntime(11160): FATAL EXCEPTION: main
  E/AndroidRuntime(11160): android.content.ReceiverCallNotAllowedException:         IntentReceiver components are not allowed to register to receive intents
  E/AndroidRuntime(11160):  at     android.app.ReceiverRestrictedContext.registerReceiver(ContextImpl.java:163)
  E/AndroidRuntime(11160):  at android.app.ReceiverRestrictedContext.registerReceiver(ContextImpl.java:157)
  E/AndroidRuntime(11160):  at   com.SmartDialer_app.SmartDialer.MyPhoneStateListener.isCharging(MyPhoneStateListener.java:106)
  E/AndroidRuntime(11160):  at  com.SmartDialer_app.SmartDialer.MyPhoneStateListener.onCallStateChanged(MyPhoneStateListene r.java:57)
  E/AndroidRuntime(11160):  at android.telephony.PhoneStateListener$2.handleMessage(PhoneStateListener.java:393)
  E/AndroidRuntime(11160): …
Run Code Online (Sandbox Code Playgroud)

java android battery

2
推荐指数
1
解决办法
1万
查看次数