小编Ken*_*ent的帖子

在数组中查找元素,但元素可以跳转

有一个数组,其中除了一个单元格之外的所有单元格都是0,我们想要找到该单个非零单元格的索引.问题是,每次检查此数组中的单元格时,该非零元素将执行以下操作之一:

  1. 向前迈进1
  2. 向后移动1
  3. 留在原地.

例如,如果该元素当前位于第10位,并且我检查了什么arr[5],那么在我选中后该元素可能位于第9,10或11位arr[5].

我们只需要找到元素当前所处的位置,而不是它开始的位置(这是不可能的).

困难的部分是,如果我们写一个for循环,真的无法知道元素当前是在你面前还是在你身后.

如果有帮助,可以使用更多上下

  1. 面试官确实给出了一个提示,也许我应该在检查x个细胞后将指针移回去.问题是,我什么时候应该搬回来,以及有多少个插槽?
  2. 在"大声思考"的同时,我开始说一些常见的方法,希望有什么东西会受到影响.当我说递归时,面试官确实说"递归是一个好的开始".我不知道递归真的是正确的方法,因为我没有看到我如何能够同时进行递归和#1.
  3. 采访者说这个问题在O(n ^ 2)中无法解决.所以我们至少看O(n ^ 3),甚至可能是指数.

arrays algorithm

8
推荐指数
2
解决办法
575
查看次数

操作系统终止我的活动后,SlidingUpPanelLayout不会在恢复时崩溃

我使用的是SlidingUpPanelLayout库的最新版本(3.0).如果它在后台运行,Android OS会定期杀死我的Activity(按Home而不是Back退出).如果发生这种情况,并且当用户上次使用该应用程序时面板已展开,则面板在创建时仍会展开,但内部的所有内容都将消失.基本上是一个空白的屏幕.

在这种情况下,我实际上想要将活动重置为它的初始状态(完全退出后打开),这是崩溃的.但我无法让它发挥作用.在布局xml中,我将初始状态设置为折叠.

<com.sothree.slidinguppanel.SlidingUpPanelLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:sothree="http://schemas.android.com/apk/res-auto"
    android:id="@+id/sliding_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    sothree:umanoPanelHeight="48dp"
    sothree:umanoShadowHeight="4dp"
    sothree:umanoInitialState="collapsed" >
Run Code Online (Sandbox Code Playgroud)

我也放了这条线

slidingUpPanelLayout.setPanelState(PanelState.COLLAPSED);
Run Code Online (Sandbox Code Playgroud)

在onCreate()的几个地方,但面板没有崩溃.我在每次折叠尝试之前和之后打印了面板状态,发现即使在第一次折叠尝试之前,panelState实际上也设置为折叠,即使它没有折叠.

那么这是图书馆中的一个错误,还是我做错了什么.

谢谢你的帮助.

android android-layout android-activity

5
推荐指数
1
解决办法
569
查看次数