滑动窗口(JS实现)

要点

利用循环控制终止位置,动态移动初始位置,整个过程类似于平衡不平衡然后循环的过程(终止位置到达满足条件的点,初始位置移动到可以使得条件不满足的点,然后终止位置再次移动到达满足条件的点,初始位置又来破坏这种平衡,不断循环,直到遍历完整个数组)

实现

力扣 209.长度最小的子数组

var minSubArrayLen = function (target, nums) {
  let i = 0
  let sum = 0
  // 取一个不可能到达的长度
  let result = nums.length + 1
  // j为终止位置,i为初始位置
  for (let j = 0; j < nums.length; j++) {
    sum += nums[j]
    while (sum >= target) {
      sum -= nums[i]
      let tempLen = j - i + 1
      result = result > tempLen ? tempLen : result
      i++
    }
  }
  return result === nums.length + 1 ? 0 : result
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是GEE基于滑动窗口法主成分分析合成遥感图像的JavaScript代码实现的一个示例: ```javascript // 设置滑动窗口的大小,这里设为3x3的窗口 var windowSize = 3; // 加载需要进行主成分分析的遥感图像 var image = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_123032_20140515'); // 获取图像的波段数 var numBands = image.bandNames().size(); // 定义一个滑动窗口的核心函数 var slidingWindow = function(img) { // 将图像转换为一个数组 var arr = img.toArray(); // 获取图像的行和列数 var rows = img.size()[0]; var cols = img.size()[1]; // 定义一个空的结果数组 var out = ee.List([]); // 循环遍历每一个像素点 for (var i = windowSize; i <= rows - windowSize; i++) { for (var j = windowSize; j <= cols - windowSize; j++) { // 定义一个滑动窗口 var window = arr.slice(i - windowSize, j - windowSize, i + windowSize + 1, j + windowSize + 1); // 将滑动窗口转换为一个矩阵 var windowMatrix = ee.Array(window); // 对矩阵进行主成分分析 var pca = windowMatrix.reduceRegion({ reducer: ee.Reducer.pca(numBands), geometry: ee.Geometry.Rectangle(i - windowSize, j - windowSize, i + windowSize, j + windowSize), scale: 30 }); // 将主成分分析的结果添加到结果数组中 out = out.add(ee.Feature(null, pca)); } } // 将结果数组转换为一个特征集合 return ee.FeatureCollection(out); }; // 对图像进行滑动窗口主成分分析 var pcaImage = slidingWindow(image); // 将主成分分析的结果可视化 Map.addLayer(pcaImage, {}, 'PCA Image'); ``` 需要注意的是,这只是一个简单的示例,实际应用中可能需要对代码进行调整以满足不同的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值