news 2026/4/25 19:14:23

144 · 交错正负数(partition)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
144 · 交错正负数(partition)

链接:LintCode 炼码

题解:九章算法 - 帮助更多程序员找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧

class Solution { public: /** * @param a: An integer array. * @return: nothing */ void rerange(vector<int> &a) { // write your code here if (a.size() <= 0) { return; } int fushu = 0; int zhengshu = 0; for_each(a.begin(), a.end(), [&fushu, &zhengshu](int num) { if (num > 0) { ++zhengshu; } else if (num < 0) { ++fushu; } }); int left = 0; int right = a.size()-1; int flag = fushu > zhengshu ? 1 : -1; // 让数量多的元素排在左边 while (left <= right) { while (left <= right && a[left] * flag < 0) { ++left; } while (left <= right && a[right] * flag > 0) { --right; } if (left <= right) { swap(a[left], a[right]); ++left; --right; } } // 默认是排除第0个元素 left = 1; right = a.size() - 1; // 如果负数数量和正数数量相等,则右边也减少一个元素 if (fushu == zhengshu) { right = a.size() - 2; } // 交换交替 while (left <= right) { swap(a[left], a[right]); left += 2; right -= 2; } } };
public class Solution { public void rerange(int[] A) { int pos = 0, neg = 0; for (int i = 0; i < A.length; i++) { if (A[i] > 0) { pos++; } else { neg++; } } partition(A, pos > neg); interleave(A, pos == neg); } private void partition(int[] A, boolean startPositive) { int flag = startPositive ? 1 : -1; int left = 0, right = A.length - 1; while (left <= right) { while (left <= right && A[left] * flag > 0) { left++; } while (left <= right && A[right] * flag < 0) { right--; } if (left <= right) { int temp = A[left]; A[left] = A[right]; A[right] = temp; left++; right--; } } } private void interleave(int[] A, boolean has_same_length) { int left = 1, right = A.length - 1; if (has_same_length) { right = A.length - 2; } while (left < right) { int temp = A[left]; A[left] = A[right]; A[right] = temp; left += 2; right -= 2; } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 19:14:22

Rocky9.2安装KVM

目录一级目录一级目录 查看CPU是否支持虚拟化 cat /proc/cpuinfo | egrep vmx|svm查看是否加载KVM lsmod | grep kvm若没有加载KVM&#xff0c;则加载模块 modprobe -a kvm modprobe -a kvm_intel关闭Selinux vim /etc/selinux/config ----------------------------------…

作者头像 李华
网站建设 2026/4/25 19:13:27

银河麒麟V10上SVN安装与配置保姆级教程(附常见连接失败解决方案)

银河麒麟V10系统SVN全栈部署指南&#xff1a;从协议选型到连接故障深度排查 在国产操作系统替代浪潮中&#xff0c;银河麒麟V10正成为越来越多企事业单位的基础设施选择。作为版本控制领域的常青树&#xff0c;SVN在代码管理、文档协同等场景仍占据重要地位。但当这两个元素相…

作者头像 李华
网站建设 2026/4/25 19:11:20

Day02-04.张量点乘和矩阵乘法

一、点乘运算点乘指&#xff08;Hadamard&#xff09;的是相同形状的张量对应位置的元素相乘&#xff0c;使用mul 和运算符 * 实现。# 1. 定义函数, 演示张量: 点乘 def dm01():# 1. 定义张量, 2行3列.t1 torch.tensor([[1, 2, 3], [4, 5, 6]])print(ft1: {t1})# 2. 定义张量,…

作者头像 李华
网站建设 2026/4/25 19:07:30

别再乱打光了!Blender 3.6 灯光保姆级指南:从环境光到IES,一次讲透

Blender 3.6 灯光艺术&#xff1a;从基础到专业的全流程实战指南 在数字创作的世界里&#xff0c;灯光是赋予3D场景灵魂的关键。很多Blender初学者在打开灯光面板时&#xff0c;面对十几种参数和不同类型的灯光选项&#xff0c;往往会感到无从下手。要么把所有灯光类型都试一遍…

作者头像 李华